Да, это возможно. Вам просто нужно получить данные символа от обратного вызова keypress к обратному вызову, который находится в цикле. Один из способов сделать это - через руководство по фигуре.
Например, если ваш цикл работает от кнопки обратного вызова, и вы хотите увидеть нажатие на рисунке вы можете использовать следующее:
Кнопка Ответный
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
fig = get(hObject,'Parent');
for i=1:1000
pause(0.01);
% Get the latest guidata
handles = guidata(fig);
if isfield(handles,'KeyData') && ~isempty(handles.KeyData)
fprintf(1,'Pressed : %s\n', handles.KeyData.Character);
% Clear the keydata we have now handled.
handles.KeyData = [];
guidata(fig,handles);
end
end
Рисунок нажатие клавиши обратного вызова
% --- Executes on key press with focus on figure1 and none of its controls.
function figure1_KeyPressFcn(hObject, eventdata, handles)
% Store the keypress event data for use in the looping callback
handles.KeyData = eventdata;
guidata(hObject,handles);
Вы хотите сказать, что внутри цикла while вы хотите, чтобы входы клавиатуры вызывали различные функции внутри цикла while? – voxeloctree
Это функции обратного вызова для графического интерфейса пользователя, созданного GUIDE – Chandough
Ahhhhh, который сильно отличается от того, что я думал. Спасибо за разъяснение. – voxeloctree