building a 3D matrix

1 回表示 (過去 30 日間)
Qian
Qian 2012 年 10 月 30 日
コメント済み: Gowthami Odeti 2017 年 11 月 9 日
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

採用された回答

Thomas
Thomas 2012 年 10 月 30 日
編集済み: Thomas 2012 年 10 月 30 日
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 件のコメント
Qian
Qian 2012 年 10 月 30 日
thank you so much. That's what i've missed.
Gowthami Odeti
Gowthami Odeti 2017 年 11 月 9 日
Thank you so much, works awesome!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by