substituting a column into a 3D matrix

3 ビュー (過去 30 日間)
ily
ily 2011 年 8 月 20 日
I have a matrix R = zeros(4,5,3) and I want to make the last column of each matrix a different number. such that given C is a vector
for n = 1: end R(:,end, n) = C(n)
I managed a solution where I have a column vector A which if I could substitute into R(:, end, :), but it says mismatch dimensions.
essentially, I want to substitute a column vector into the columns of a 3D matrix R without using a for loop.
  1 件のコメント
Jan
Jan 2011 年 8 月 21 日
"for n=1:end" is not valid. Better: "for n = 1:size(R, 3)".

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

採用された回答

Fangjun Jiang
Fangjun Jiang 2011 年 8 月 20 日
It's not clear when you mention "last column" for a 3-D matrix. Hope you mean one of the following two cases.
R=zeros(4,5,3);
A=1:20;
R(:,:,3)=reshape(A,size(R,1),size(R,2))
R=zeros(4,5,3);
A=1:12;
R(:,5,:)=reshape(A,size(R,1),size(R,3))
  1 件のコメント
ily
ily 2011 年 8 月 22 日
thanks. If we assumed the third dimension was a page. Then, I was trying to add a different vector into the last column of each page. I was trying to this without the for loop.
The second solution was very helpful. I understand the key is to make the vectors into a 2-D matrix.

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

その他の回答 (1 件)

Jan
Jan 2011 年 8 月 21 日
R = zeros(4,5,3);
A = [1, 2, 3];
R(:, end, :) = reshape(repmat(A, 4, 1), [4, 1, 3]);

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by