Function inside a for loop

1 回表示 (過去 30 日間)
gdz
gdz 2022 年 12 月 17 日
移動済み: Walter Roberson 2022 年 12 月 18 日
Hi,
I have a function that works well when I called it one by one.
>>Calculate(a,cs,sclk)
ans: 20
>>Calculate(a,cs,sclk)
ans: 20.5
>>Calculate(a,cs,sclk)
ans: 20.25
However, when i switching the function inside a for loop, it kept produced the same answer.
for j=1:9
d=Calculate(a,cs,sclk);
fprintf('value %d is %d\n',j,d);
end
Asnwer:
value 1 is 10
value 2 is 10
.
.
.
value 9 is 10
And I called it in a series. They all produced the same answer.
>> d1=Calculate(a,cs,sclk);d2=Calculate(a,cs,sclk);d3=Calculate(a,cs,sclk);d4=Calculate(a,cs,sclk);
Ans:d1=15,d2=15,d3=15,d4=15,d5=15
Anyone know what's happened for my function here?
  4 件のコメント
Askic V
Askic V 2022 年 12 月 17 日
You can measure time with tic and toc.
Please have a look at:
https://www.mathworks.com/help/matlab/ref/tic.html
gdz
gdz 2022 年 12 月 18 日
Thank you all of your help

サインインしてコメントする。

採用された回答

Askic V
Askic V 2022 年 12 月 17 日
移動済み: Walter Roberson 2022 年 12 月 18 日
For loop will be executed in a matter of milliseconds. On the other hand when you call function once at a time, there is a significantly more time difference between calls. So perhaps your input parameters cannot change fast enough in the loop call.
  2 件のコメント
Walter Roberson
Walter Roberson 2022 年 12 月 17 日
移動済み: Walter Roberson 2022 年 12 月 18 日
I agree with Askic V
gdz
gdz 2022 年 12 月 17 日
移動済み: Walter Roberson 2022 年 12 月 18 日
I have add a pause function inside and it works!!!! Thank you very much.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by