For loop only saving my last run

4 views (last 30 days)
Eric on 13 Nov 2019
Answered: Jyothis Gireesh on 18 Nov 2019
for i = 1:2
Result(i) = norm(vcu(i,:))
for k = 1:2
ada = vcu(k,:)/Result(k)
Where vcu is a vector (a,b,c;a2,b2,c3)
when I run the code I get 2 1x3 vectors as ada but when I want to use ada further in my code it does not work because ada is only saved for k=2
  1 Comment
David Hill
David Hill on 13 Nov 2019
ada(k) = vcu(k,:)/Result(k)%I think you just need to index ada.

Sign in to comment.

Answers (1)

Jyothis Gireesh
Jyothis Gireesh on 18 Nov 2019
Here are a few pointers which may help with your situation:
  • As per the code given above each iteration of the for loop causes the result to be saved in the variable ada, which essentially overwrites the existing value. Since ada is not predefined, it takes the size of the last data assigned to it (1x3).
  • Instead, you may use the following code:
ada = zeros(2, size(vcu, 2));
for k = 1:2
ada(k,:) = vcu(k,:)/Result(k);


Find more on Introduction to Installation and Licensing in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!