MATLAB Answers

0

Collecting the outputs of a function within a for loop

Asked by Nikolaos Zafirakis on 17 Apr 2019
Latest activity Commented on by Nikolaos Zafirakis on 17 Apr 2019
I’ve got a function within a for loop and I want to collect the output variables of the function. Currently, the outputs A, B, C, D give only the last number in the series.
time = 100;
for i=1:length(time)
[A,B,C,D] = Name(a,b,c,d,time);
end

  0 Comments

Sign in to comment.

1 Answer

Answer by madhan ravi
on 17 Apr 2019
Edited by madhan ravi
on 17 Apr 2019

time = 100;
[A,B,C,D]=deal(cell(100,1)); % if the outputs are scalars then use zeros() instead of cell
for ii=1:time
[A{ii},B{ii},C{ii},D{ii}] = Name(a,b,c,d,time);
end

  3 Comments

Thank you for your fast response. Although what you have provided is not working. The outputs are a mixture of scalar and vector quantities. If you are familiar with any other method could you please provide it to me otherwise thank you for your help!
It’a not working doesn’t give any useful information, what error message are you getting?
I don’t think the issue is in the code you provided me anymore because the function requires a different input than the one I previously believed this new input is a 100 vectors 1 by 6. I will let you know when I managed to compute this, although if you could provide assistance on this to I would be very happy. The plan is to add a for loop around the for loop so,
T=100
for i=1:T
C=P(100:1); % The one by six vector needs to come from C
[A,B,C,D]=deal(cell(100,1));
for ii=1:time
[A{ii},B{ii},C{ii},D{ii}] = Name(a,b,c,d,time);
end
end

Sign in to comment.