首页 文章

在Matlab中运行时获取用户输入

提问于
浏览
4

我有一个函数,我想要输入,但只有当用户想要 . 例如,如果我有这个代码:

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

你会得到一个不断绘制正弦波(就像一部蹩脚的电影) . 我想要做的是允许用户随时改变波的幅度 . 即程序将继续运行,但如果用户键入 20Enter ,则可以更改幅度变量,并且正弦波将改变电影中的幅度 . 关于如何实现这一点的任何指针?

2 回答

  • 4

    如上所述,最好使用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之后的那个 . 注意向上箭头键是你的朋友 .

  • 1

    您无法通过在控制台中键入数字来执行此操作,但您可以使用简单的GUI执行此操作 . 做谷歌搜索Matlab回调找到例子 . 当GUI事件发生时,它会触发一个可用于修改循环中变量的函数 .

相关问题