如何在按键上再次运行功能?

时间:2015-07-17 19:32:56

标签: matlab

我有一个显示带有一些随机元素的图形的函数。我想拥有它,以便当用户按下某个键时,该功能再次运行,在图表上重新分配这些随机元素。这样做的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

您可以将其包含在while循环中并使用select。将函数调用放在while循环中,使用ginput并轮询键击,当按下此键时,继续。这样的事情,假设你的数字在每次调用函数后都打开了:

while true
    %// Generate random data
    %// Call function
    %// Open figure

    %// Get a key from the user
    [~,~,b] = ginput(1);

    %// If you push C or c, then continue
    if b == 67 || b == 99
        continue;
    else %// Else, get out
        break;
    end
end

答案 1 :(得分:1)

您希望使用KeyPressFcn设置您在脚本中使用的数字的按键回调,如下所示:

h = figure('KeyPressFcn',@testcallback);

然后将以下内容放在函数testcallback.m文件中(您也可以使用函数句柄):

function testcallback(hObject,callbackdata)
    % Check to make sure key pressed is the escape key
    if (strcmp(callbackdata.Key,'escape'))
        % Do whatever processing you want
        imshow(rand(40));
    end
end

运行脚本时,会出现一个数字。每次按escape时,该功能都将触发:

enter image description here

答案 2 :(得分:0)

使用MATLAB中的input()函数可以提示并询问用户输入。您可以使用此功能提示用户输入密钥,输入此密钥后,您的功能可以被调用并重新运行。

有关此问题的文档可在Mathworks website

上找到