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

Variablenübergabe in GUI

 

Tom

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2008, 21:39     Titel: Variablenübergabe in GUI
  Antworten mit Zitat      
Hallo an alle,

ich habe einige Matlab m-Files geschrieben, die mir Daten einlesen, die eingelesenen Daten reduzieren oder die eingelesenen Daten (abgespeichert in den Matrizen f, Az und Amp) auf unterschiedliche Art darstellen. Funktioniert alles...
Jetzt wollte ich eine GUI darum bauen, mit der über den Button "load Data" das m-File zum einlesen gestartet wird und über ein Popupmenü das m-File für die jeweilige Darstellungsmethode. Meine erste Idee war es die m-Files durch
Code:
function [Amp,Az,f]=openVektorfull1;

zu Funktionen zu machen und in der GUI im Callback des Pushbutton durch
Code:
[Amp,Az,f]=openVektorfull1;

aufzurufen und die berechneten Vektoren im WS abzulegen um sie in den weiteren Funktionen wieder verwenden zu können.
Funktioniert nicht...
Mit der (wie ich finde unschönen) Variante assignin zu verwenden, kann ich die Variablen zwar aus der Funktion in den WS laden, sie aber in den anderen Funktionen nicht verwenden (Undefined function or variable 'Amp'.)
Hat einer ne Idee? Ist ja eigentlich ein grundlegenes Problem wie ich finde.

Danke im Voraus


jochma
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 79
Anmeldedatum: 25.10.07
Wohnort: Oberbayern
Version: Version 7.0.0 (R14)
     Beitrag Verfasst am: 22.03.2008, 01:52     Titel:
  Antworten mit Zitat      
Servus,

wenn du die Variable mit assignin aus der Funktion in den Workspace geladen hast, kannst du diese mittels der Funktion evalin wieder in eine neue Funktion einladen!

z.B.

Code:

A=evalin('base', 'B');
 


holt dir die Variable B aus dem Workspace 'base' in die Funktion, in der sie den Namen A erhält.

gruß
jochma
Private Nachricht senden Benutzer-Profile anzeigen
 
Tom

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2008, 11:25     Titel:
  Antworten mit Zitat      
Also erstmal vielen Dank!

Jetzt klappt es. Ich hatte es schonmal so versucht, aber vergessen die Variable in Hochkommas zu setzen.
Sollte nicht aber auch die andere Variante funktionieren, bei der ich die Variablen mit dem Funktionsaufruf bzw. der Funktionsdeklaration übergebe?

Gruß, Tom
 
jochma
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 79
Anmeldedatum: 25.10.07
Wohnort: Oberbayern
Version: Version 7.0.0 (R14)
     Beitrag Verfasst am: 22.03.2008, 13:03     Titel:
  Antworten mit Zitat      
ja, normalerweise klappt das mit der Variablenübergabe in Funktionsaufrufen schon so.

Aber in GUI's / Callbacks ist das ein bisschen anders.
Warum, kann ich nicht sagen, aber dafür gibt's bessere Matlab-Experten in diesem Forum! Smile

gruß,
jochma
Private Nachricht senden Benutzer-Profile anzeigen
 
Tom

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2008, 13:22     Titel: Danke
  Antworten mit Zitat      
OK, na vielleicht äußert sich ja noch einer dieser Experten Wink

Ich stehe allerdinigs schon wieder vor einem neuen (nicht ganz so gravierendem) Problem Crying or Very sad
Ich habe jetzt versucht neben der Darstellung als Einzelplot und als Animation versucht auch die Darstellung als Mesh (2D und 3D) im Grafikfenster meiner GUI anzuzeigen. Jedoch stürtzt dabei Matlab ab. Wenn ich in der Funktion angebe, dass in einem extra Figure dargestellt werden soll klappt es.
Abgesehen davon sind die Achsenbeschriftungen in den Figures gespiegelt und den Befehl
Code:
scheint er völlig zu ignorieren.
Schreibe ich die Information in ein Bitmap sind zumindest die Achsen OK, das ist ja aber keine Lösung.

Gibts dafür sinnvolle Erklärungen?

Gruß, Tom
 
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.