在查看图形时检测matlab中的击键?

时间:2011-09-21 17:24:31

标签: matlab user-interface keyboard

我正在尝试在matlab中对一些图像数据进行排序,并希望提示用户输入一系列图像。每当我显示图像时,我想暂停并等待按键并根据按下的内容执行不同的操作。

当前最佳解决方案:

responses = zeros(length(images),1);
for i = 1:length(images)
    im = imread(images{i}.fname);
    h = figure(1);
    imshow(im);

    % instead of just pause, I want to get the keystroke (k) that was pressed
    waitforbuttonpress;
    k = get(h,'CurrentCharacter');

    switch lower(k)
        case 'a'
            responses(i) = 1;
        case 'b'
            responses(i) = 2;
    end

end

1 个答案:

答案 0 :(得分:2)

您可以使用图形环境的KeyPressFcn属性,该属性应设置为回调函数的句柄,该函数接收包含按下的字符的事件结构。有关详细信息和示例,请参阅Matlab documentation

此外,您可以查看图形环境的CurrentKey属性,但它不会让您知道何时实际按下该键。