Hello, I have the following piece of code where "cgs, mgs, house,qr" are functions. I am trying to write the following script in a nested for loop since the whole lot is repetitive enough. My problem arises when I am trying to call a different function on different iterations (cgs, mgs,etc) ,and storing each list name in a 2d array list. Anyone know how I could make this script in one for loop ?
listCGS = nan([5 1]);
for i=1:5
m=2^i;
v = ([1:m]/m)';
A = vander(v);
[Q,R] = cgs(A)
normCGS = norm(Q'*Q-eye(size(Q'*Q)));
listCGS(i) = normCGS;
end
listMGS = nan([5 1]);
for i=1:5
m=2^i;
v = ([1:m]/m)';
A = vander(v);
[Q,R] = mgs(A);
normMGS = norm(Q'*Q-eye(size(Q'*Q)));
listMGS(i) = normMGS;
end
listHouse = nan([5 1]);
for i=1:5
m=2^i;
v = ([1:m]/m)';
A = vander(v);
[Q,R] = house(A);
normHouse = norm(Q'*Q-eye(size(Q'*Q)));
listHouse(i) = normHouse;
end
listMat = nan([5 1]);
for i=1:5
m=2^i;
v = ([1:m]/m)';
A = vander(v);
[Q,R] = qr(A);
normMat = norm(Q'*Q-eye(size(Q'*Q)));
listMat(i) = normMat;
end
Thank you very much.

 Réponse acceptée

Cris LaPierre
Cris LaPierre le 22 Fév 2021

0 votes

Why not just put it all in one loop?
listCGS = nan([5 1]);
listMGS = nan([5 1]);
listHouse = nan([5 1]);
listMat = nan([5 1]);
for i=1:5
m=2^i;
v = ([1:m]/m)';
A = vander(v);
[Q,R] = cgs(A)
normCGS = norm(Q'*Q-eye(size(Q'*Q)));
listCGS(i) = normCGS;
[Q,R] = mgs(A);
normMGS = norm(Q'*Q-eye(size(Q'*Q)));
listMGS(i) = normMGS;
[Q,R] = house(A);
normHouse = norm(Q'*Q-eye(size(Q'*Q)));
listHouse(i) = normHouse;
[Q,R] = qr(A);
normMat = norm(Q'*Q-eye(size(Q'*Q)));
listMat(i) = normMat;
end

1 commentaire

Mihail Anghelici
Mihail Anghelici le 22 Fév 2021
There is still quite a bit of repetition, but this is good enough. Thank you !

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Simulink dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by