Subtract 1 from variable each second

Imagine I got something like this:
counter = 100;
while true
do_something=true;
pause(rand);
disp(counter);
end
Then I need the counter variable to get subtracted by 1 each second inside the while loop. Any suggestions?

 採用された回答

Jan
Jan 2021 年 6 月 10 日

0 投票

counter = 100;
TimerH = timer('TimerFcn', @doCount, 'ExecutionMode', 'fixedRate', ...
'Period', 1.0, 'UserData', counter);
start(TimerH);
while true
do_something=true;
pause(rand);
counter = TimerH.UserData;
disp(counter);
end
delete(TimerH);
function doCount(TimerH, EventData)
TimerH.UserData = TimerH.UserData - 1;
end
Do you really need an active counter?
iniTime = clock;
while true
do_something=true;
pause(rand);
counter = 100 - etime(clock, iniTime);
disp(counter);
end

3 件のコメント

Mathieu NOE
Mathieu NOE 2021 年 6 月 10 日
Whow
I'm impressed !
so much science for a counter !
Martin
Martin 2021 年 6 月 10 日
me2, thanks!
Jan
Jan 2021 年 6 月 10 日
@Mathieu NOE: And it even counts backwards from 100 for 3 weeks. :-)

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

その他の回答 (1 件)

Mathieu NOE
Mathieu NOE 2021 年 6 月 10 日

0 投票

hi
nothing fancy
counter = 100;
while true
do_something=true;
counter = counter -1; % decrement counter
pause(1); % 1 second pause
disp(counter);
end

3 件のコメント

Martin
Martin 2021 年 6 月 10 日
編集済み: Martin 2021 年 6 月 10 日
yeah I know this one, but the hing is pause has to be pause(rand); (this loop can take between something like 0.001sec and 3 weeks)...
Mathieu NOE
Mathieu NOE 2021 年 6 月 10 日
so how do you plan to get the counter decremented every second ??
Martin
Martin 2021 年 6 月 10 日
編集済み: Martin 2021 年 6 月 10 日
yeah thats my question :) I guess I need to use
now
(before the loop) and also indside the loop, but I have hard times figure it out which is why I am asking

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

カテゴリ

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

製品

リリース

R2020b

質問済み:

2021 年 6 月 10 日

コメント済み:

Jan
2021 年 6 月 10 日

Community Treasure Hunt

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

Start Hunting!

Translated by