Use keyboard input to assign value to a variable
Show older comments
I have a series of images that I'd like to display one at a time and be able to change something like the brightness or contrast by using keyboard keys (say up or down arrow) and when I'm satisfied with that image, use left or right arrows to move between images. To that end, I'd like to have some sort of function that, upon pressing a keyboard key, outputs a value that depends on the key pressed. I could do something like this with ginput, where the button output is 1, 2, or 3 depending on if I left, right, or middle click, but that would limit me to only 3 different options, while I want at least 4, if not 6 or 8 different options. Any ideas?
1 Comment
Aaron Fleming
on 7 Dec 2016
Edited: Aaron Fleming
on 7 Dec 2016
Had a question similar to this, but wanted to update a variable depending on the key that was pressed in 'real time'. Because it doesn't seem to exist anywhere else here is the code that will allow you to assign a variable, s, with either space, leftarrow, or rightarrow, when you click one of those three. It's a small variation on Geoff's code below.
function catchKeyPress
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 order for this to work you need to call the function catchKeyPress from a separate script. Thanks Geoff for the script which let me figure this out. end
Accepted Answer
More Answers (0)
Categories
Find more on Desktop in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!