building a 3D matrix

1 view (last 30 days)
Qian
Qian on 30 Oct 2012
Commented: Gowthami Odeti on 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

Accepted Answer

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

Sign in to comment.

More Answers (0)

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!