我有一个显示带有一些随机元素的图形的函数。我想拥有它,以便当用户按下某个键时,该功能再次运行,在图表上重新分配这些随机元素。这样做的最佳方法是什么?
答案 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
时,该功能都将触发:
答案 2 :(得分:0)
使用MATLAB中的input()
函数可以提示并询问用户输入。您可以使用此功能提示用户输入密钥,输入此密钥后,您的功能可以被调用并重新运行。
有关此问题的文档可在Mathworks website
上找到