function outprod.m
3 ビュー (過去 30 日間)
古いコメントを表示
Cannot run this coding. Please help me
function [X]=outprod(V,D)
n=3;
A=randn(n); %random square matrix
A=A'*A;
[V,D]=eig(A);%find eigenvalue and eigenvector
X=zeros(n); %define the matrix
for i=1:n
X=X+D(i,i)*outprod(V(:,i),V(:,i));
display(X);
display(A');
end
end
1 件のコメント
Jan
2022 年 12 月 14 日
移動済み: Matt J
2022 年 12 月 14 日
You forgot to mention, what the problem is. The error message should mention this already.
This function overwrites the inputs V and D and calls itself recursively until the recursion limit is exhausted. The readers cannot guess reliably, what the intention of the function is. Therefore it is fragile to suggest a modification of the code.
Please explain, what you want to calculate. In future questions attach a copy of the complete error message.
回答 (1 件)
Matt J
2022 年 12 月 14 日
編集済み: Matt J
2022 年 12 月 14 日
Perhaps this is what you want?
n=3;
A=randn(n); %random square matrix
A=A'*A;
[V,D]=eig(A);%find eigenvalue and eigenvector
X=outprod(V,D);
display(X);
display(A');
function [X]=outprod(V,D)
n=length(D);
X=0; %define the matrix
for i=1:n
X=X+D(i,i)*V(:,i)*V(:,i)';
end
end
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!