Question about concatenation in for-loop

Hello,
I am trying to concatenate a 2D matrix into a 3D matrix where the length of the 3rd dimension is dependent on length of a vector previously asigned. For example, given
A = [1,2,3,4,5];
B = [1,2;3,4];
I would like creat marix C with size 2x2x5. I can do this easily by doing
C = cat(3,B,B,B,B,B);
However if I change the length of A, I want to write my code so that I don't have to update then number of times "B" repeats itself inside the cat function. I tried using the folowing for-loop but it didn't work. Any advice would be appreciated.
for i=1:length(A)
C = cat(3,B,B)
end

1 comentario

So I figured it out. The folowing code works.
A = [1,2,3,4,5];
B = [1,2;3,4];
C = B;
for i=1:length(A)
C = cat(3,C,B);
end

Iniciar sesión para comentar.

 Respuesta aceptada

OCDER
OCDER el 9 de En. de 2019
Instead of cat, use repmat for your case, as you're repeatedly stacking a matrix in a dimension.
B = rand(2, 5)
C = repmat(B, 1, 1, 5) %stacks B in the 3rd dimension 5 times

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Productos

Versión

R2017b

Etiquetas

Preguntada:

el 9 de En. de 2019

Comentada:

el 9 de En. de 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by