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

1 Ansicht (letzte 30 Tage)
Ann G
Ann G am 30 Mär. 2016
Kommentiert: Ann G am 30 Mär. 2016
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?

Akzeptierte Antwort

Image Analyst
Image Analyst am 30 Mär. 2016
Bearbeitet: Image Analyst am 30 Mär. 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 Kommentare
Image Analyst
Image Analyst am 30 Mär. 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 am 30 Mär. 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);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by