MATLAB - 识别每个排版符号

时间:2015-04-22 07:53:36

标签: matlab

我在MATLAB中有以下代码,用户必须逐字输入单词"precipitations"。输入一个字母后,用户必须按 Enter ,程序会检查输入的字母是否正确。

现在我想更改程序,以便用户在键入字母后必须按 Enter 。 MATLAB中是否有任何操作符或函数对每个按下按钮作出反应,因此不必按 Enter

disp('Please enter "precipitations" without errors')
target=('precipitations');
n=size(target); n=n(2); % Characters number

for i=1:n;
    YourInput(i)=input('','s');
    if YourInput(i)==target(i)
        disp('OK. Please, input the next symbol')
        i=i+1;
    else
        disp('Error. Please try again.')
        break
    end
end

1 个答案:

答案 0 :(得分:2)

据我所知,有 no 内置MATLAB函数来执行此操作。但是MATLAB File Exchange上有一个函数getkey

您可以下载此功能并更改您的代码以使用

YourInput(i) = getkey();

-

我当然想知道如何实现这一目标,并且它会执行以下操作:他们在位置0,0创建一个窗口大小为(1,1)的新图形。您会注意到屏幕左下方的新图形。

然后,创建在按下键时执行的回调函数KeypressFcn。按下的键保存在图中的UserData字段中,并作为变量返回。函数的有趣部分(和最小的例子)是:

fh = figure(...
    'keypressfcn','set(gcbf,''Userdata'',double(get(gcbf,''Currentcharacter''))) ; uiresume ', ...
    'position',[0 0  1 1] ...
);
uiwait ;
key = get(fh,'Userdata') ;
delete(fh) ;