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

alle Variablen speichern - Ausnahme definieren

 

Boromir05
Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 08.08.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.09.2016, 16:38     Titel: alle Variablen speichern - Ausnahme definieren
  Antworten mit Zitat      
Hallo zusammen.

Ich erzeuge mir innerhalb einer Funktion aus mehreren Variablen einen Dateinamen, unter dem alle anderen Variablen im Workspace gespeichert werden.
Dummerweise wird beim Speichern aller Variablen dann immer die Variable "Dateiname" mit gespeichert...
kann man da nicht eine Ausnahme definieren, dass alle Variablen außer der Variablen "Dateiname" gespeichert werden?

Prinzipiell will ich die .mat Files gerade einfach nur umbenennen. Das ist wahrscheinlich auch einfacher möglich, oder?
Code:

ordnerInfo = dir (fullfile('*.mat'));
for n=1:inf
Name = ordnerInfo(n).name;
% [...] hier werden die Bestandteile des neuen Dateinamens erzeugt

load([Name])

Dateiname=[numstr(n) Name '.mat]
clear n Name
 
save([Dateiname '.mat'],  expr(?!Dateiname) ) % <-- funktioniert leider nicht.
end
Das sieht bei mir (Matlab 2007 -.-) aber auch anders aus:
hinter expr(? macht Matlab alle Zeichen gelb/gold
" expr(?!Dateiname) ) "
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.09.2016, 19:27     Titel:
  Antworten mit Zitat      
Hallo,

wenn du die Dateien "nur" umbenennen willst, dann würde ich movefile empfehlen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Boromir05
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 08.08.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.09.2016, 08:19     Titel:
  Antworten mit Zitat      
top!! Damit hab ich´s hinbekommen.
Stark dass du all diese Funktionen kennst! Shocked

Kannst Du mir zum ursprünglichen Problem auch was sagen? Man lernt ja gern dazu Wink
Liegt das an meiner Matlab-Version, dass da die Schrift gelb wird?

Außerdem ist mir aufgefallen, dass der Code oben sowieso nicht funktioniert, wenn ich den fullfile Befehl außerhalb der for Schleife habe. Dann kennt er nämlich die Variable ordnerInfo nicht!?

und hinter '.mat habe ich einmal im Beispiel oben noch das zweite Anführungszeichen vergessen. Leider kann man das hier im Forum nicht mehr nachträglich editieren.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
Liegt das an meiner Matlab-Version, dass da die Schrift gelb wird?

Eher ein Syntax-Problem. Hast du vielleicht ' ' um den Ausdruck vergessen?

Eine Möglichkeit wäre:
Code:
s = whos
names = {s.name}
names = setdiff(names, 'Dateiname')
save('testac', names{:})


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Boromir05
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 08.08.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.09.2016, 09:35     Titel:
  Antworten mit Zitat      
Moin,

Wenn ich exakt diese Zeile bei mir eingebe:
Code:
save([Dateiname '.mat'],  expr(?!Dateiname) );
dann wird der Teil !Dateiname) ); gelb. hier im code-Fenster nicht

Danke für deinen Vorschlag. Wieder was gelernt!
Damit könnte ich auch erst nach s=whos; names={s.name}; den Dateinamen erzeugen.
Dann braucht man
Code:
nur, um die Laufvariable nicht mit zu speichern, falls man den Vorgang in einer for-Schleife ausführt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.09.2016, 09:52     Titel:
  Antworten mit Zitat      
Hallo,

! wird grundsätzlich genutzt, um Systembefehle auszuführen - und farblich entsprechend angezeigt.

Grüße,
Harald
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 - 2025 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.