How to call a function inside a loop with a counter?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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?
0 Commenti
Risposta accettata
Image Analyst
il 30 Mar 2016
Modificato: Image Analyst
il 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 Commenti
Image Analyst
il 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
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!