Verfasst am: 05.07.2017, 07:35
Titel: Code optimieren für Plots
Hallo Zusammen,
Ich habe etwas viel Code und würde gerne wissen, ob man es mit schleifen oder anderen Tricks vereinfachen kann.
Es geht darum, dass zuvor ermittelte Werte geplottet werden sollen, wenn eine Checkbox ausgewählt ist.
Dazu folgender Code, Namen der Variablen sind hier vereinfacht:
Code:
% Plot Diagramm 1 % Überprüfen ob Diagramm 1 ausgewählt ist
chk_1= get(handles.chk_1, 'Value');
if chk_1== 1
x_Wert_1=handles.x_Wert_1; % Werte aus Gui holen
y_Wert_1=handles.y_Wert_1;
axes(handles.axes1);
plot_1 =plot(x_Wert_1, y_Wert_1, 'k-o','LineWidth',1.5,'DisplayName',' Diagramm 1);
xlabel('x Achse');
ylabel('y Achse');
xlim([0120]) ylim([06000]) hold on
grid on
handles.plot_1=plot_1;
guidata(hObject, handles);
end
% Plot Diagramm 2 % Überprüfen ob Diagramm 2 ausgewählt ist
chk_2= get(handles.chk_2, 'Value');
if chk_2== 1
x_Wert_2=handles.x_Wert_2; % Werte aus Gui holen
y_Wert_2=handles.y_Wert_2;
axes(handles.axes1);
plot_2 =plot(x_Wert_2, y_Wert_2, 'k-o','LineWidth',1.5,'DisplayName',' Diagramm 2);
xlabel('x Achse');
ylabel('y Achse');
xlim([0120]) ylim([06000]) hold on
grid on
handles.plot_2=plot_2;
guidata(hObject, handles);
end
Also einfach alle Indices über die Schleife bestimmen. Noch einfacher wäre es natürlich, wenn Du von Anfang an die Variablen und Felder als Array definiert hättest, anstatt die Indices in den Namen zu verstecken.
Danke dir Jan, das hilft mir sehr!
Gibt es dann noch eine Möglichkeit den plot als handle zu speichern, denn in weiteren Funktionen ändere ich Fabre/Art/usw des Plots.
Das Problem mit dem Überspringen hat sich geklärt, da die Checkboxen auch mit Indizes versehen sind.
Das ist keine valide Matlab-Syntax. Was möchtest Du hiermit erreichen? Wie man einen Fieldname mit einem Index im Namen versieht, hast Du in der nächsten Zeile gezeigt:
Der
plot
Befehl gibt übrigens kein Handle zu einem "Plot"-Objekt zurück (soetwas gibt es gar nicht!), sondern den Handles eines
line
Objekts. Dadurch kann man nicht einfach "die Art des Plots ändern", wie Du schriebst, aber z.B. Farbe geht sehr gut.
Vielen Dank Jan, so klappt alles!
Bin mit den Schleifen noch nicht so fit
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.