How to make MATLAB detect keyboard stroke?
    138 views (last 30 days)
  
       Show older comments
    
    M Min
 on 16 Apr 2017
  
    
    
    
    
    Answered: Amir Azadeh Ranjbar
 on 19 Oct 2023
            Hi,
I want to write a code which detect left and right arrow stroke in keyboard.
I tried to use below kind of code but it shows crosshair and also interrupts the working of other line. (Making crosshair invisible is somewhat important in this case)
[~,~,button]=ginput(1);
      switch button
          case 28 %left
          case 29 %right
       end
Is there any better way to do it? Thanks!
0 Comments
Accepted Answer
  Nirav Sharda
    
 on 18 Apr 2017
        There are a couple of ways to achieve this. You can use the KeyPressFcn callback on the figure window. Here is an example.
h_fig = figure;
set(h_fig,'KeyPressFcn',@myfun);
The myfun here could have something like this.
function myfun(src,event)
   disp(event.Key);
end
k = waitforbuttonpress;
% 28 leftarrow
% 29 rightarrow
% 30 uparrow
% 31 downarrow
value = double(get(gcf,'CurrentCharacter'))
I hope this helps.
6 Comments
  Caden Scharpf
 on 21 Apr 2020
				The numbers for the keys are their corresponding ASCII Charactershttps://www.petefreitag.com/cheatsheets/ascii-codes/
More Answers (2)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!






