Using arrow keys to increment variables within a while loop
14 ビュー (過去 30 日間)
古いコメントを表示
I have a GUI that is constantly plotting a graph for a set period of time. I have a variable that I want to be able to change in real time with the left and right arrow keys. I've tried looking up code, but i'm having a hard time understanding what is being said.
For example, I used the code
h = figure;
set(h,'KeyPressFcn',@KeyPressCb);
function y = KeyPressCb(~,evnt)
fprintf('key pressed: %s\n',evnt.Key);
global s;
if strcmp(evnt.Key,'rightarrow')==1
s = evnt.Key;
elseif strcmp(evnt.Key, 'leftarrow')==1
s = evnt.Key;
elseif strcmp(evnt.Key,'space')==1
s = evnt.Key;
end
end
end
in an attempt to adjust the value of theta, but can't get it to work right? Any advice would be appreciated.
0 件のコメント
回答 (2 件)
Walter Roberson
2017 年 5 月 21 日
if strcmp(evnt.Key, 'rightarrow')
theta = theta + 1;
elseif strcmp(evnt.Key, 'leftarrow')
theta = theta - 1;
end
Saeed Jahromi
2021 年 7 月 3 日
I guess you have a typo. "event" should be correct, not "evnt".
1 件のコメント
Walter Roberson
2021 年 7 月 4 日
編集済み: Walter Roberson
2021 年 7 月 4 日
No, the user had posted
function y = KeyPressCb(~,evnt)
so the correct variable name is evnt not event .
参考
カテゴリ
Help Center および File Exchange で Creating, Deleting, and Querying Graphics Objects についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!