function outprod.m

4 visualizzazioni (ultimi 30 giorni)
NOR AZIERA
NOR AZIERA il 14 Dic 2022
Modificato: Matt J il 14 Dic 2022
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 Commento
Jan
Jan il 14 Dic 2022
Spostato: Matt J il 14 Dic 2022
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.

Accedi per commentare.

Risposte (1)

Matt J
Matt J il 14 Dic 2022
Modificato: Matt J il 14 Dic 2022
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

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by