Azzera filtri
Azzera filtri

building a 3D matrix

1 visualizzazione (ultimi 30 giorni)
Qian
Qian il 30 Ott 2012
Commentato: Gowthami Odeti il 9 Nov 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

Risposta accettata

Thomas
Thomas il 30 Ott 2012
Modificato: Thomas il 30 Ott 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 Commenti
Qian
Qian il 30 Ott 2012
thank you so much. That's what i've missed.
Gowthami Odeti
Gowthami Odeti il 9 Nov 2017
Thank you so much, works awesome!

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by