我有一个我想要输入的功能,但仅限于用户想要的功能。例如,如果我有这个代码:
figure
amplitude = 10;
tic
i = 1;
while(1)
time = toc;
values(i) = amplitude*sin(time);
times(i) = time;
plot(times, values)
drawnow
i = i+1;
end
你会得到一个不断绘制的正弦波(就像一部蹩脚的电影)。我想要做的是允许用户随时改变波的幅度。也就是说,程序将继续运行,但如果用户键入20
和Enter
,则可以更改幅度变量,并且正弦波将改变电影中的幅度。有关如何实现这一点的任何指示?
答案 0 :(得分:4)
您无法通过在控制台中键入数字来执行此操作,但您可以使用简单的GUI执行此操作。做谷歌搜索Matlab回调找到例子。当GUI事件发生时,它会触发一个可用于修改循环中变量的函数。
答案 1 :(得分:1)
最好用上面提到的GUI来做,但如果你只是想在控制台中找到一些东西,我可以提供:
一个脚本,定期要求用户输入幅度,然后以此幅度继续“电影”。它可以很容易地扩展,以允许用户决定何时会要求他输入下一个幅度变化。
clear
amplitude = 10;
i=1;
while(1)
time = i/1000;
values(i) = amplitude*sin(time);
times(i) = time;
plot(times, values)
drawnow
i = i+1;
if mod(i,3141) == 0
keyboard
end
end
现在这将运行一段时间,然后要求您输入下一个幅度。请注意,您实际上可以一次提供多个命令。
amplitude = 20; return
amplitude = 1; return
这将使下一个幅度为20,然后是1之后的那个。注意向上箭头键是你的朋友。