Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

How do I use a for loop?

조회 수: 2 (최근 30일)
James Pain
James Pain 2017년 3월 17일
마감: MATLAB Answer Bot 2021년 8월 20일
Hello, I'm currently trying to make an approximation method in matlab, and this is what I have currently:
function T = Dog(A,S)
L=randi([-9,9],3,1);
H=L/norm(L);
O=(inv((A-(A(3,3)*eye(3)))))*(H);
Y=O/norm(O);
G=(inv((A-(A(3,3)*eye(3)))))*(Y);
D=G/norm(G);
F=(inv((A-(A(3,3)*eye(3)))))*(D);
R=F/norm(F);
W=(inv((A-(A(3,3)*eye(3)))))*(R);
X=W/norm(W);
V=(inv((A-(A(3,3)*eye(3)))))*(X);
K=V/norm(V);
N=(K.*K)./(K.*V);
T=N+S;
end
Now I was wondering is there someway of using a for loop from lines 3 to 13, so that instead of having to change the name of the variable each time it would simply replace it with with the one that came before it?
  댓글 수: 1
James Pain
James Pain 2017년 3월 17일
I had the Approximation method wrong originally, but I've now edited the question properly.

답변 (1개)

Thorsten
Thorsten 2017년 3월 17일
편집: Thorsten 2017년 3월 17일
F=randn(3,1)./W;
for i = 1:5
Q = inv(A - S*eye(3))*F;
F = W./Q;
W = Q;
end
J = (F.*F)./(Q.*F);
T = J + S;
  댓글 수: 3
Jan
Jan 2017년 3월 17일
편집: Jan 2017년 3월 17일
@James: The reply remains almost the same. Can you apply the required changes by your own?
You can create C = A - S*eye(3) once before the loop. Then for numerical stability replace the explicit inversion by:
Q = C \ F;
James Pain
James Pain 2017년 3월 17일
Your Right, I've figured out how to do it, cheers

이 질문은 마감되었습니다.

제품

Community Treasure Hunt

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

Start Hunting!

Translated by