Ich bin mir nicht sicher, ob dies Ihre Frage beantwortet, aber Grundstück Objekte (das heißt lines, patches, images, etc.) haben einen ButtonDownFcn
Rückruf, der ausgeführt wird, wenn Sie eine Maustaste drücken, während sich der Mauszeiger über das Objekt.
Hier ist ein einfaches Beispiel (unter Verwendung von nested functions und function handles), wie Sie ButtonDownFcn
Rückrufe nutzen könnten Informationen über die ausgewählten Objekte zu erhalten. Zuerst speichern Sie diese Funktion in einer m-Datei:
function colorFcn = colored_patches
selectedColor = [1 0 0]; %# The default selected color
figure; %# Create a new figure
axes; %# Create a new axes
patch([0 0 1 1],[0 1 1 0],'r',... %# Plot a red box
'ButtonDownFcn',@patch_callback);
hold on; %# Add to the existing plot
patch([2 2 4 4],[1 2 2 1],'g',... %# Plot a green box
'ButtonDownFcn',@patch_callback);
patch([1 1 2 2],[3 4 4 3],'b',... %# Plot a blue box
'ButtonDownFcn',@patch_callback);
axis equal; %# Set axis scaling
colorFcn = @get_color; %# Return a function handle for get_color
%#---Nested functions below---
function patch_callback(src,event)
selectedColor = get(src,'FaceColor'); %# Set the selected color to the
%# color of the patch clicked on
end
function currentColor = get_color
currentColor = selectedColor; %# Return the last color selected
end
end
nächstes den obigen Code ausführen und die zurückFunktionsGriff in einer Variablen speichern:
colorFcn = colored_patches;
Dieses eine Figur mit 3 farbigen Feldern schaffen , etwa so:

Nun, wenn Sie die Maus über einen der farbigen Kästchen klicken, wird die Ausgabe von colorFcn
wird chan ge:
%# Click the red box, then call colorFcn
>> colorFcn()
ans =
1 0 0 %# Returns red
%# Click the blue box, then call colorFcn
>> colorFcn()
ans =
0 0 1 %# Returns blue
%# Click the green box, then call colorFcn
>> colorFcn()
ans =
0 1 0 %# Returns green
danke für die Antwort ... Ja ich der Benutzer auf das Bild klicken möchten (ein beliebiges Objekt im Bild) und die Koordinaten, wo sie klicken ... Wenn ich diese Koordinaten bekommen kann ich werde versuchen, um die Ginput-Funktion anzuwenden ... Vielen Dank – zenab
Entschuldigung für diesen Fehler ... Ich werde meine Frage fortsetzen ... Wenn ich die Objektkoordinaten bekomme kann ich mit diesem Objekt als ein Bild behandeln? – zenab
Ich habe die Frage zur Veranschaulichung bearbeitet. –