MATLAB Answers

Saving all output of for loop

14 views (last 30 days)
for i=1:1500
X1=J(i)-sqrt((D(i)^2)/((sqrt(A(i))+1)))
Y1=I(i)-A(i)*(J(i)-X1)
X2=J(i)+sqrt((D(i)^2)/((sqrt(A(i))+1)))
Y2=I(i)+A(i)*(X2-J(i))
end
coord=[X1(:),Y1(:),X2(:),Y2(:)]
%coord
writematrix(coord,'Coord_15.csv')
I am trying to save the coordinates (X1, X2, Y1,Y2) from a for loop as shown in the code above. All inputs (I, J, A, D) are columns vectors , but i only the last iteration is saved. I will appreciate any help.

  0 Comments

Sign in to comment.

Accepted Answer

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 12 May 2019
Hi,
Simply add (i) after your output variables, viz. X1, Y1, X2, Y2:
for i=1:1500
X1(i)=J(i)-sqrt((D(i)^2)/((sqrt(A(i))+1)))
Y1(i)=I(i)-A(i)*(J(i)-X1)
X2(i)=J(i)+sqrt((D(i)^2)/((sqrt(A(i))+1)))
Y2(i)=I(i)+A(i)*(X2-J(i))
end
coord=[X1(:),Y1(:),X2(:),Y2(:)]
%coord
writematrix(coord,'Coord_15.csv')
Good luck

  4 Comments

Show 1 older comment
Tchilabalo
Tchilabalo on 13 May 2019
Thanks for your answer. I have tried your suggestion but i am getting this error message: "Unable to perform assignment because the left and right sides have a different number of elements".
madhan ravi
madhan ravi on 16 May 2019
Then why did you accept the answer if it doesn’t solve the problem??
Sulaymon Eshkabilov
Sulaymon Eshkabilov on 16 May 2019
Before commenting any point verify what you have stated. That is the correct answer. Vectorization is another solution.

Sign in to comment.

More Answers (1)

madhan ravi
madhan ravi on 12 May 2019
Edited: madhan ravi on 16 May 2019
You don't need a loop , this is straight forward just vectorize your code:
Note: The other answer doesn‘t show the importance of preallocation.
X1=J-sqrt((D.^2)./((sqrt(A)+1)));
Y1=I-A.*(J-X1);
X2=J+sqrt((D.^2)./((sqrt(A)+1)));
Y2=I+A.*(X2-J);
coord=[X1(:),Y1(:),X2(:),Y2(:)];
writematrix(coord,'Coord_15.csv')

  2 Comments

Stephen Cobeldick
Stephen Cobeldick on 16 May 2019
+1 simple and efficient
madhan ravi
madhan ravi on 16 May 2019
Thank you Stephen.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by