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

Variable aus .mat Datei laden

 

Anika
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 01.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.10.2008, 18:24     Titel: Variable aus .mat Datei laden
  Antworten mit Zitat      
Hallo an alle,

ich muss für ein Uniprojekt eine GUI machen. Grundsätzlich funktioniert alles, aber ich will noch ein paar Sachen benutzerfreundlicher machen.

Mein Problem:
Ich habe einen Button mit dem ich eine .mat Datei auswählen kann und dann diese auch lade (funktioniert).
Danach werden in einer Listbox alle Variablen angezeigt die in der .mat waren (funktioniert acuh).
Nach einem drücken eines ok-Buttons soll jetzt diese Variable für weitere berechnungen verwendet werden (funktioniert leider nicht).

Mit dem Code:
signal1 = load (handles.durchsuchen,handles.listbox1);
(wo in handles.durchsuchen der Pfad der Datei ist und in handles.listbox1 der Name der Variablen steht)
bekommen ich die richtige Variable., d.h. mit display(signal1) bekomme ich in der Command:

signal1 =

sin_signal: [1x5000 double]

Ich brauche aber die Werte die in sin_signal stehen.
Wie kann ich es machen?
In der Command würde es reichen zu schreiben: signal = signal1.sin_signal um in signal alle Werte zu haben. In der GUI funktioniert dies nicht wirklich.

Über eine schnelle und gute Very Happy Hilfe wäre ich euch sehr Dankbar.
Anika

P.S. Falls ihr noch zusätzliche Infos braucht, dann stehe ich euch zu Verfügung Very Happy
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 02.10.2008, 07:50     Titel: Re: Variable aus .mat Datei laden
  Antworten mit Zitat      
Moin,

Anika hat Folgendes geschrieben:
Ich brauche aber die Werte die in sin_signal stehen.
Wie kann ich es machen?
In der Command würde es reichen zu schreiben: signal = signal1.sin_signal um in signal alle Werte zu haben. In der GUI funktioniert dies nicht wirklich.


Inwiefern funktioniert das denn nicht wirklich? Lädst du die Variablen in einer anderen Funktion als der, in welcher du sie benutzen willst? Was gibt Matlab für eine Fehlermeldung?

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Anika
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 01.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.10.2008, 16:13     Titel:
  Antworten mit Zitat      
Fehlermeldungen bekomme ich keine. Trotzdem macht es nicht das was ich will Very Happy

Ich habe einen Button. Im Callback steht:
Code:

   [FileName,PathName] = uigetfile('*.mat','Select the MAT-file');  
   was = fullfile(PathName,FileName);
   var = whos('-file',was);
   var.name  
   set(handles.listbox1,'String',{var.name})
   handles.durchsuchen = was;
   guidata(hObject, handles);
 

Dann in der Listbox1 steht:
Code:

  NewValStr = get(hObject,'String');
  NewVal = get(hObject,'Value');
  wert = NewValStr{NewVal};
  handles.listbox1 = wert;
 guidata(hObject,handles);
 


Später habe ich noch einen andere Button. Dort will ich den Wert benutzen der in der augewählten Variable aus der listbox steht.
Dazu habe ich erstmal in diesem Callback geschrieben:
Code:

wert = handles.listbox1;
signal1 = load (handles.durchsuchen,wert);
 

Dadurch bokomme ich aber folgenede ausgabe:
signal1 =

sin_signal: [1x5000 double]

Wie kann ich jetzt die Werte aus sin_signal zu weiteren berechnungen verwenden?
Hoffe die Informationen helfen weiter.

Anika

edit by steve: Code-Umgebung ergänzt. Bitte in Zukunft selbstständig formatieren (Button oben Mitte).
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 02.10.2008, 16:50     Titel:
  Antworten mit Zitat      
Was bekommst du als Ausgabe bei folgendem Code in deiner Button-Callback?

Code:
wert = handles.listbox1;
tmp = load(handles.durchsuchen,wert);
signal1 = eval(['tmp.' wert]);
display(signal1);


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Anika
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 01.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.10.2008, 21:15     Titel:
  Antworten mit Zitat      
Hallo Alex,

vielen, vielen Dank.
Du hast mein Projekt und meine Laune gerettet Very Happy
Es funktioniert super und die Lösung meines Problems war so einfach.
(Als Anfänger weiß man doch vieles nicht Wink )

Gruß
Anika
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.