# How to call columns of matrices using 'for loop' ?

64 ビュー (過去 30 日間)
Khan 2021 年 4 月 15 日 13:22
コメント済み: Khan 2021 年 4 月 15 日 15:50
Hello,
I am new to MATLAB, can anyone tell me how can I use for loop for the following formulas?
Approx1=U(:,1)*S(1)*V(:,1)';
Approx2=U(:,1)*S(1)*V(:,1)'+ U(:,2)*S(2)*V(:,2)';
Approx3=U(:,1)*S(1)*V(:,1)'+ U(:,2)*S(2)*V(:,2)'+ UU(:,3)*S(3)*V(:,3)';
where U is 6 x 3, S is diagonal (3 x 3) and V is a 3 x 3 matrix. 1, 2 3 are being the columns of respective matrices.
Thank you
##### 8 件のコメント表示非表示 7 件の古いコメント
Khan 2021 年 4 月 15 日 15:50
Thank you

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

### 採用された回答

Matt J 2021 年 4 月 15 日 13:37

for i=1:3
Approx{i}= U(:,1:i)*S(1:i,1:i)*V(:,1:i).';
end
##### 1 件のコメント表示非表示 なし
Khan 2021 年 4 月 15 日 13:57
dear, it is not working. actually in the first Approximation I want to Multiply, first coulmns of U, S and V' matrices. In the Second approximatrion, I want to Multiply first coulmn of U, S and V' matrices and then multiply second coulms of U, S and V' matrices, and then add them. Simillarly for the last approximation. I want to get three different approximations.

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

### その他の回答 (1 件)

David Hill 2021 年 4 月 15 日 13:49
s=diag(S);
for i=1:3
Approx(:,:,i)=U(:,i)*V(:,i)'*s(i);%I am assuming this is what you want, s(i) being scalar along the diagonal
end
Approx=cumsum(Approx,3);
##### 6 件のコメント表示非表示 5 件の古いコメント
Khan 2021 年 4 月 15 日 15:50
Thank you

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

### Community Treasure Hunt

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

Start Hunting!