the loop question for the for loop. k=1:n

12 views (last 30 days)
QIWEI PAN
QIWEI PAN on 5 Feb 2018
Edited: Stephen23 on 5 Feb 2018
I have a questions for a for loop questions.
this is a matlab code without for loop .
n=0.1;
b1=1;
b2=6;
b3=5;
b4=2;
b5=5;
b6=8;
y1=[1,0,2];
y2=[1,1,2];
y3=[1,2,1];
y4=[-1,3,-1];
y5=[-1,2,1];
y6=[-1,3,2];
a1=[1;0;0];
anew1=a1'+n*(b1-y1*a1)*y1;
anew2=anew1+n*(b2-y2*anew1')*y2;
anew3=anew2+n*(b3-y3*anew2')*y3;
anew4=anew3+n*(b4-y4*anew3')*y4;
anew5=anew4+n*(b5-y5*anew4')*y5;
anew6=anew5+n*(b6-y6*anew5')*y6
anew7=anew6+n*(b1-y1*anew6')*y1;
anew8=anew7+n*(b2-y2*anew7')*y2;
anew9=anew8+n*(b3-y3*anew8')*y3;
anew10=anew9+n*(b4-y4*anew9')*y4;
anew11=anew10+n*(b5-y5*anew10')*y5
anew12=anew11+n*(b6-y6*anew11')*y6
anew13=anew12+n*(b1-y1*anew12')*y1
and i want to use the for loop to make the code shorter and clear,
n=0.1;
b=[1;6;5;2;5;8;1;6;5;2;5;8;1];
y1=[1,0,2];
y2=[1,1,2];
y3=[1,2,1];
y4=[-1,3,-1];
y5=[-1,2,1];
y6=[-1,3,2];
y7=[1,0,2];
y8=[1,1,2];
y9=[1,2,1];
y10=[-1,3,-1];
y11=[-1,2,1];
y12=[-1,3,2];
y13=[1,0,2];
y=[y1;y2;y3;y4;y5;y6;y7;y8;y9;y10;y11;y12;y13];
a1=[1;0;0];
anew=[1,0,0];
for k=1:13
anew=anew+n*(b(k)-y(k,:)*(anew)')*y(k)
end
but i don't know why the two loop answes is different ,it should be same?

Answers (1)

Jos (10584)
Jos (10584) on 5 Feb 2018
Your code is very unclear. Learn to use arrays and matrices. Rather than
b1 = 2 ; b2 = 4 ; b3 = ...
y1 = [1 2 3] ; y2 = [5 6 7] ; ...
use
b = [2 4 ...] % store b_k as position b(k)
y = [1 2 3 ; 5 6 7 ; ...] % store y_k in row y(k,:)
  3 Comments
Stephen23
Stephen23 on 5 Feb 2018
Edited: Stephen23 on 5 Feb 2018
"why the answers is different ?"
Because your code is too complex for such a simple task, makes it hard to understand, and hides bugs easily. You should follow Jos' advice and learn to use matrices and arrays instead.
Tip: whenever you write numbered variable names then you are doing something wrong and you should be using an array:

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!