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 aus Listbox in matfile speichern

 

tronic
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 25.08.09
Wohnort: ---
Version: 7.7
     Beitrag Verfasst am: 07.09.2009, 11:05     Titel: Variablen aus Listbox in matfile speichern
  Antworten mit Zitat      
Hallo,

Ich habe variablennamen des workspace in einer listbox stehen und möchte nun genau diese variablen in eine mat-file speichern.

Das funktioniert mit
Code:
save(datei, 'var1', 'var2', ...)
.
Soweit so gut...

Bleibt aber die Frage wie ich den String aus der listbox hier am besten
"zerhacke", um ihn in die save funktion zu bekommen.

Über eine Schleife jedes Element des listbox-string cellarrays abspeichern?
Das erscheint mir etwas kompliziert...

Geht doch bestimmt noch einfacher !
Bin offen für Vorschläge Wink

Gruß
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 07.09.2009, 15:31     Titel:
  Antworten mit Zitat      
Hallo,

so:

Code:

var1 = 1;
var2 = 2;
list_str = {'var1','var2'}
datei    =  'test.mat'
eval(['save(''',datei,'''',sprintf(',''%s''',list_str{:}),')']);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
tronic
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 25.08.09
Wohnort: ---
Version: 7.7
     Beitrag Verfasst am: 08.09.2009, 10:19     Titel:
  Antworten mit Zitat      
Super, genau das hab ich gesucht Smile

Danke dir
Private Nachricht senden Benutzer-Profile anzeigen
 
tronic
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 25.08.09
Wohnort: ---
Version: 7.7
     Beitrag Verfasst am: 14.09.2009, 10:02     Titel:
  Antworten mit Zitat      
Hätte noch mal ne Frage dazu...
Das Speichern an sich funktioniert einwandfrei.

Ich realisiere den speichervorgang über die uiputfile-Funktion, also über ein Speichern-Dialogfenster, um an den dateinamen und den pfad zu kommen.

Falls ich aber im geöffneten Dialogfenster auf "Abbrechen" drücke, gibt MATLAB mir den Fehler

Code:
A MATLAB string constant is not terminated properly.


aus.

Beim Laden ist es genauso.

Aktueller Code:

Code:

vars = get(handles.lbox_var, 'String');
%Pfad & Dateiname über Box einlesen
    [datei, pfad] = uiputfile('*.mat', 'Konfigurationsdatei speichern');
    evalin('base', ['save(''', [pfad datei], '''', sprintf(',''%s''',vars{:}),  ')']);


Als Fehlerursache wird die evalin-Zeile angegeben. Wird da evtl. beim Drücken auf "Abbrechen" in dateiname und pfad ein ungültiger wert geschrieben ?

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 14.09.2009, 10:20     Titel:
  Antworten mit Zitat      
Hallo, weil du auf Abbrechen drückst,
kommt als Rückgabe statt String-Werte Double Werte zurück.
Das muss man durch IF-Abfrage abfangen.
Code:

vars = get(handles.lbox_var, 'String');
%Pfad & Dateiname über Box einlesen
 [datei, pfad] = uiputfile('*.mat', 'Konfigurationsdatei speichern');
if ~ isequal(pfad,0)
   evalin('base', ['save(''', fullfile(pfad, datei), '''', sprintf(',''%s''',vars{:}),  ')']);
else
   return;
end
 
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.