building a 3D matrix

1 visualización (últimos 30 días)
Qian
Qian el 30 de Oct. de 2012
Comentada: Gowthami Odeti el 9 de Nov. de 2017
I understand how the following works, x=[a b; c d]; x(:,:,2)=x; which will give x as 3-D matrix. However, i'm writing a code for which i need x to be updated each time. for example, for i=1:2; for j=1:3; x(:,j)=[i+j+1;j*2 ]; end x(:,:,i)=x end
In this case, I want to have a result of 2*3*2 matrix, x(:,:,1) =
3 4 5
2 4 6
x(:,:,2) =
4 5 6
2 4 6
However, it turns out I only get
x(:,:,1) =
4 5 6
2 4 6
x(:,:,2) =
4 5 6
2 4 6
I know the problem is the x(:,:,i)=x line as x gets updated and renewed for each loop and covered by the new data again.
But I couldn't assign new name for building this matrix.
Can anyone help

Respuesta aceptada

Thomas
Thomas el 30 de Oct. de 2012
Editada: Thomas el 30 de Oct. de 2012
All you need to do is
for i=1:2;
for j=1:3;
x(:,j,i)=[i+j+1;j*2 ]; % add the 3rd dimension i
end;
end
P.S. It is good idea to refrain from using i & j as variable names since they are the complex function in MATLAB
  2 comentarios
Qian
Qian el 30 de Oct. de 2012
thank you so much. That's what i've missed.
Gowthami Odeti
Gowthami Odeti el 9 de Nov. de 2017
Thank you so much, works awesome!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by