Ich habe eine Matlab-Funktion erstellt, die einen Graphen plottet. Wenn ich die Funktion mehrmals anrufe, möchte ich, dass alle Graphen in einer vorbereiteten Figur dargestellt werden. Stattdessen öffnet mein Code mit jeder Funktion die vorbereitete Figur in einem neuen Fenster mit nur einem Graphen.Wie mehrere Funktionsaufrufe in einer Figur dargestellt werden
Meine Funktion sieht wie folgt aus
function myfunction(x,y)
if ~exist('myfigure')
myfigure = openfig('myfigure.fig')
assignin('base', 'myfigure',myfigure)
end
figure(myfigure);
plot(x,y)
end
Mit der if-Funktion, die ich versuchte, es zu verhindern, dass ein neues Figur-Fenster zu öffnen, wenn myfigure allready geöffnet wird. Aber es scheint, als würde Matlab die if-Funktion einfach ignorieren. Selbst der Assignin hat nicht geholfen. Obwohl im Befehlsfenster überprüft, zeigte, dass vorhanden ('myfigure') seinen Wert ändert. Ich weiß wirklich nicht warum die If-Funktion von Matlab ignoriert wird. Haben Sie irgendwelche Vorschläge, wie Sie dies beheben können
Hallo @EBH, beim ersten Funktionsaufruf ist "meineFigur" nicht geöffnet oder definiert. Das könnte also nicht für mich funktionieren. Ich habe mir jetzt geholfen, indem ich den Zahlencode in der Funktion weggelassen habe. Es muss jedes Mal zusätzlich mit der Funktion auf diese Weise eingegeben werden. – crx
@crx Ich verstehe. Schau dir meinen Schnitt an. – EBH
Vielen Dank für Ihre Antwort. Das ist absolut das, wonach ich gesucht habe. Mein Upvote siehst du vielleicht nicht, weil ich weniger Reputationspunkte habe. Eine Bemerkung für andere: nach "plot" in der Funktion musste ich "Hold on" hinzufügen und du migth tan (x) nicht benutzen, weil es bei x = 0 unendlich wird. – crx