WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

GUI mit zwei Axis für bestehendes Programm

 

Goraker

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.04.2018, 12:30     Titel: GUI mit zwei Axis für bestehendes Programm
  Antworten mit Zitat      
Ich habe ein bestehendes Programm, das mit 8 manuell im Code eingetragenen Variablen zwei Grafiken berechnet und in zwei externen Fenstern über "figure" geplottet.

In meiner GUI werden die Variablen nur eingegeben und über
Code:
function start_callback(...)
x=str2num(get(handles.x,'string'));
save('ort\speicher.mat','x','y') ;
run('ort\bestehendes_Programm');
 

an das bestehende Programm übergeben und starte dieses. Dort lade ich mit
Code:
load('ort\speicher.mat','x','y') ;
 

die Variablen. Nach der Berechnung gebe ich die Werte auf die selbe weise zurück.
load/save.

1. Frage. Gibt es eine bessere Möglichkeit als über load und save? Im ersten Schritt sind es nur 8 Variablen. Aber im zweiten sind es über 20 Variablen. Diese immer als Speicher.mat zwischenzuspeichern erscheint mir sehr umständlich.

2. Frage. Ich will die Grafiken in der GUI in zwei axes ausgeben und nicht wie bisher in extra Fenstern.
Funktioniert das so überhaupt bei den GUI-axes, oder muss ich die sache anders angehen?
Code:
axes(handles.axes1);
hold on;
plot(x,y1,'k-',handles.axes1); set(gca, 'YLim', [0 1.5*r_out],handles.axes1);
plot(xvia, y_out, 'mo',handles.axes1);
plot(xvia, y_in, 'mo',handles.axes1);
xlabel('Angle',handles.axes1); ylabel('y in mm',handles.axes1);
 


3. Frage. Zusätzlich schließt sich mein GUI seit kurzem , wenn ich den Pushbutten start betätige. Dieser besteht wie oben gezeigt nur aus einlesen, save und run.
Ich habe kein end und kein return; in der Funktion. Ich habe leider keine Möglichkeit gefunden um das GUI extra offen zu halten.
oder habt Ihr mir eine Tipp, wie ich einen solchen Fehler suchen und finden kann?


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.04.2018, 14:00     Titel:
  Antworten mit Zitat      
Hallo,

1.
https://de.mathworks.com/help/matla.....data-among-callbacks.html

2.
Der Ansatz ist richtig, aber das Handle auf das Koordinatensystem muss das erste Eingabeargument für plot sein.

3.
Schwer zu sagen ohne ein reproduzierbares Beispiel. Es sollte an sich eine Fehlermeldung geben.
Lässt du die GUI in MATLAB laufen oder als kompilierte .exe? In letzterem Fall die GUI aus der Konsole starten, damit man die Fehlermeldung sieht.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Goraker
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 04.04.18
Wohnort: ---
Version: R2016b
     Beitrag Verfasst am: 05.04.2018, 11:08     Titel:
  Antworten mit Zitat      
1. Darum werde ich mich später nochmal kümmern. Mit save und load funktioniert es jetzt.

2. Ich habe es jetzt so gelöst.

Code:
axes(handles.axes1);
hold on;
plot(handles.axes1,x1,handles.axes1,y1,'k-');
plot(handles.axes1,x2,handles.axes1,yneu2,'r-');  %ist nur ein Teil aber gleich aufgebaut

set(gca, 'XLim', [-1.5*r_out 1.5*r_out], 'YLim', [-1.5*r_out 1.5*r_out]); axis square;
xlabel(handles.axes1,'x'); ylabel(handles.axes1,'y');

 

Danke

3. Ich habe den Fehler über die Breakpoints gefunden.
Der Fehler ist aufgetreten, wenn ich im GUI-Skript das vorgegebene Programm über run(...); gestartet habe.
Im vorgegeben Programm wurden in den ersten drei Zeilen alles gelöscht.
Code:


Das ist grundsätzlich eine gute Idee, beim aufrufen aus einem anderen Programm sollte man auf diese Lösch-Zeilen jedoch verzichten.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.