Repeat elements of a vector as matrixes in a multidimensional array.
12 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Idossou Marius Adom
le 2 Déc 2019
Commenté : Idossou Marius Adom
le 2 Déc 2019
Hello Everyone.
I want to repeat elements of a vector as matrixes in a multidimensional array. For example, say I have the vector v = [1 2 3 4 5]. Then I want to construct a three dimensional array w of dimension say 4*3*lenght(v) where: w(:,:,1) = v(1), w(:,:,2) = v(2), ... w(:,:,length(v)) = v(end). Is there a way to do this without using a for loop ? Any help would be precious.
Thank you.
0 commentaires
Réponse acceptée
Robert U
le 2 Déc 2019
Hi Marius Adom,
If I understood your task correctly, you can use arrayfun() to create each x-y-Matrix and concatenate them using cat():
x = 4;
y = 3;
v = [1 2 3 4 5];
cOut = arrayfun(@(dIn,nInd) ones(x,y) .* dIn, v, 1:length(v), 'UniformOutput',false);
dOut = cat(3,cOut{:});
Kind regards,
Robert
Plus de réponses (1)
James Tursa
le 2 Déc 2019
Another way:
m = size of 1st dimension
n = size of 2nd dimension
v = your row vector
result = reshape(repmat(v,m*n,1),m,n,[]);
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!