function outprod.m

조회 수: 1 (최근 30일)
NOR AZIERA
NOR AZIERA 2022년 12월 14일
편집: Matt J 2022년 12월 14일
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
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
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);
X = 3×3
0.2455 0.1739 0.6999 0.1739 0.8567 1.4576 0.6999 1.4576 3.4055
display(A');
0.2455 0.1739 0.6999 0.1739 0.8567 1.4576 0.6999 1.4576 3.4055
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

카테고리

Help CenterFile Exchange에서 Eigenvalues & Eigenvectors에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by