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 件のコメント

Walter Roberson
Walter Roberson 2022 年 12 月 17 日
No, no-one knows. We have not seen the code for your function
gdz
gdz 2022 年 12 月 17 日
How about the time required for calling a function? How can I find the minimum time difference for two calls?
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 日

1 投票

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 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

製品

リリース

R2020a

質問済み:

gdz
2022 年 12 月 17 日

移動済み:

2022 年 12 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by