2016-04-12 8 views
0

Ich bin derzeit eine einzige Figur in MATLAB mit der folgenden FunktionPlot in MATLAB basierend auf Benutzereingaben

PlotImage(finalImage, 1, 4, 4, 'Final Image'); 

function[] = PlotImage(image, y, x, value, name) 
subplot(y,x,value); 
imagesc(image); 
axis image; 
title(name); 
end 

Ich habe mehr ‚finalImages‘ Plotten, die ich basierend auf Benutzereingaben angezeigt werden soll, dh Programm zeigt Bild Wenn die Tasten 1 - 5 auf der Tastatur gedrückt werden, wird PlotImage erneut mit einem anderen Bild aufgerufen (Bilder 1 - 5).

Gibt es eine Möglichkeit, dies zu tun? Dokumentation auf KeyPressFcn scheint mir nicht zu helfen.

Antwort

0

Sie müssen eine KeyPressFcn angeben, der die Tastendruck-Ereignis behandelt und fordert außerdem alle notwendigen Plottbefehle (und PlotImage Aufruf verbunden sein könnte.

hfig = figure('WindowKeyPressFcn', @(src,evnt)keypress(evnt)); 

%// Create 5 "images" to show 
finalImages = {rand(4), rand(4), rand(4), rand(4), rand(4)}; 

function keypress(evnt) 
    if ismember(evnt.Key, '12345') 
     img = finalImages{str2double(evnt.Key)}; 
     PlotImage(img, 1, 4, 4, 'Final Image'); 
    end 
end 

function PlotImage(img, y, x, value, name) 
    subplot(y,x,value); 
    imagesc(img); 
    axis image; 
    title(name); 
end