MATLAB Answers

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

64 ビュー (過去 30 日間)
Khan
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 件のコメント
Khan
Khan 2021 年 4 月 15 日 15:50
Thank you

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

採用された回答

Matt J
Matt J 2021 年 4 月 15 日 13:37
編集済み: Matt J 2021 年 4 月 15 日 13:38
for i=1:3
Approx{i}= U(:,1:i)*S(1:i,1:i)*V(:,1:i).';
end
  1 件のコメント
Khan
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
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 件のコメント
Khan
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!

Translated by