As explained here, high-level Plotfunktionen löschen tatsächlich die Achsen Eigenschaften, wenn sie genannt: es ist nicht mehr zugänglich
Die Funktion kann vor dem Plotten aufgerufen werden, aber wenn ich das Bild mithilfe der folgenden Befehle angezeigt werden soll. Also entweder Sie verwenden, um die hold
Funktion (die die NextPlot
Eigenschaft wirkt), oder setzen Sie einfach den Achsen ButtonDownFcn
Rückruf nachimage
/imagesc
/imshow
genannt. Hier
ein Beispiel:
% create axes
ax = axes();
% display image
img = imread('cameraman.tif');
imagesc(img, 'Parent',ax, 'PickableParts','none', 'HitTest','off');
axis(ax, 'image')
colormap gray
% set click callback
ax.ButtonDownFcn = @(o,e) disp('axis clicked');
Später, wenn Sie das Bild aktualisieren müssen, verwenden Sie das Bild Griff CData
Eigenschaft anstelle von Re-Plotten das Bild zu aktualisieren.
Hinweis: Das obige Beispiel wurde für das in R2014b eingeführte HG2-Grafiksystem geschrieben. Sollte für ältere Releases einfach zu ändern sein. – Amro
So kann ich jetzt die buttondownfnc arbeiten mit dem folgenden: axes_handle = handles.DrawAxes; imagesc (imag, 'HitTest', 'Aus'); set (Achsen_Handle, 'ButtonDownFcn', {@ FcnName, a, b}); Ich bin mir jedoch nicht sicher, wie die Position geklickt wird oder auf Handles für meine GUI zugreifen kann. –
das sind separate Fragen, sollten Sie eine neue Frage erstellen und fragen Sie nach diesem Teil .. Aber um Sie zu beginnen, gibt es eine 'CurrentPoint'-Eigenschaft zum Abrufen der Mausposition verwendet. Wie bei den Handles können Sie 'findobj' verwenden oder die Handle in der Benutzeroberfläche mit' guidata' oder 'getappdata' speichern. – Amro