How to call a function inside a loop with a counter?

1 view (last 30 days)
I want to call a function inside a loop..I call it like that:
flag=0;
for i=1:3
flag=flag+1;
mean(flag)=mean_value(I);
end
But it is not right..What should I do?

Accepted Answer

Image Analyst
Image Analyst on 30 Mar 2016
Edited: Image Analyst on 30 Mar 2016
I don't know what the function mean_value() does, but it's not getting anything different from one iteration to the next because the badly-named I is not changing inside the loop, so the very same I is going to the mean_value() function on each iteration. This does not make sense.
The other big, big problem is that your mean_value() function may well use the mean() function inside it. However, you overwrite the mean() function by assigning the result of mean_value() to it. Now perhaps the mean() function inside mean_value will still work, but maybe it won't. Either way, it's a horrible, bad, and unwise decision to name a variable/array after the name of a built-in function. Call it "theMeans" or something else, but certainly not "mean".
Also, flag is unnecessary. You can just simply use i instead of flag. But I'd actually use k instead of i or j, which are the imaginary variable.
  3 Comments
Image Analyst
Image Analyst on 30 Mar 2016
No, more like this:
for index = 1 : 3
data = GetData(index); % Somehow get a new value for data.
theMeans(index) = mean_value(data);
end
Ann G
Ann G on 30 Mar 2016
Unfortunately, it doesn't work..I get this message: ??? In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in ==> main_code_multiple_save at 129 theMeans(t)=mean_value(data);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!