going next command after specified time

does anyone know, is there this capability in MATLAB? : when i run a m-file, it asks some questions for example it asks: 'if you want to plot type 1 and enter' then until i don't enter 1, not going next command line and stay in this question. but i need displays countdown and if i didn't enter 1, then after finishing time, automatically goes next command.
thanks

 採用された回答

Grzegorz Knor
Grzegorz Knor 2011 年 9 月 1 日

1 投票

If you use the INPUT function you can try replace it with the WAITINPUT:
Grzegorz

8 件のコメント

mohammad
mohammad 2011 年 9 月 1 日
really thanks for replying Grzegorz, please tell me in which line i must use this :
now i have this:
fprintf('type 1 to plot')
sel=input('>>');
if sel == 1
plot.....
end
but i need this:
fprintf('type 1 to plot')
if sel==1 for 5s
plot
end
Grzegorz Knor
Grzegorz Knor 2011 年 9 月 1 日
fprintf('type 1 to plot')
sel=waitinput('>>',5);
if sel == 1
plot(1:10)
end
mohammad
mohammad 2011 年 9 月 1 日
thanks, it works perfect!
i have a little problem, i also use cprint function but this m file has problem with waitinput.m , do you know why?
mohammad
mohammad 2011 年 9 月 1 日
cprintf.m is here:
http://www.mathworks.nl/matlabcentral/fileexchange/24093-cprintf-display-formatted-colored-text-in-the-command-window
Grzegorz Knor
Grzegorz Knor 2011 年 9 月 2 日
Hmm... I do not have any trouble. Could you paste some code and error message?
mohammad
mohammad 2011 年 9 月 2 日
Grzegorz, there is no error message because matlab hanks, but i knew that when i put another command (like 2+2) between calling waitinput and cprint, this problem not happens.
in under form there is problem:
t=10;
cprintf('blue','in 10s type 1 to plot')
sel=waitinput('>>',t);
if sel == 1;
figure, plot(R_H_1(:,1),R_H_1(:,2),'k'),xlim([0,25]),grid on
hold on
plot(r(:,1),r(:,2),'r'),xlim([0,25]),grid on
plot(r(:,1)+timeShift,r(:,2),'c'),ylim([0,700]),grid on,xlim([0,25])
hold off;
legend('REFRENCE','INPUT','INPUT AFTER APPLYING TIME SHIFT')
end
cprintf('blue',' in 10s type 2 to plot ')
sel=waitinput('>>',t);
if sel == 2;
subplot(3,1,2);plot(r(:,1),r(:,2),'r');ylim([0 700]),grid on; legend('INPUT')
subplot(3,1,1);plot(R_H_1(:,1),R_H_1(:,2),'k');ylim([0 700]),grid on;legend('REFRENCE')
subplot(3,1,3);plot(r(:,1)+timeShift,r(:,2),'c');ylim([0 700]),grid on;legend('INPUT AFTER APPLYING TIME SHIFT'),xlim([0,25])
end
cprintf('g','**************************************************************************************')
fprintf(1,repmat('\n',1,1));
waitinput really is a nice code saving a lot my time
thanks dear Grzegorz
Grzegorz Knor
Grzegorz Knor 2011 年 9 月 2 日
I have no idea, because your code in my Matlab (7.10.0.499 - R2010a on Linux 2.6.38-11-generic-pae) works seamlessly.
mohammad
mohammad 2011 年 9 月 2 日
thanks a lot Grzegirz for your all aids

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

その他の回答 (0 件)

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by