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

save unter verwendung von uitegdir

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2010, 14:17     Titel: save unter verwendung von uitegdir
  Antworten mit Zitat      
Hallo zusammen,

ich möchte eine struct in ein Mat-file schreiben über uigetdir an einer bestimmten Stellen ablegen. Pfad und Nmae frage ich wie folgt ab:

Code:

[filename, pathname, filterindex] = uiputfile( ...
{'*.mat',  'Mat Files (*.mat)'}, ...
 'Save as');
 


das ist aus der Hilfe zu entnehmen.

Nun möchte ich mit
Code:
das ganze speichern:

Code:


fullname = [pathname filename];

save fullname Daten

 


speichert mir die DAtenstructur dann ins current directory unter dem Namen fullname.

Warum?

wenn ich fullname mir anzeigen lasse ist es richtig, mit z.B.:

Code:
C:\Documents and Settings\DSCHARW\Desktop\testfile.mat


was ist falsch?

Grüße


aj.geissler
Forum-Guru

Forum-Guru



Beiträge: 251
Anmeldedatum: 26.11.07
Wohnort: Seeheim-Jugenheim
Version: ---
     Beitrag Verfasst am: 31.08.2010, 14:24     Titel:
  Antworten mit Zitat      
Hi,

in der Kommandozeile wird nicht der Inhalt der Variable fullname, sondern die Zeichenkette "fullname" als Dateiname interpretiert.

Du kannst folgendes machen:

Bastele einen verketteten String der lautet:

meinstring="save " + fullname + " Daten"

(So eine Syntax geht z.B. in Scilab. In Matlab gibt es da andere Befehle..)

Danach einfach

eval(meinstring)

ausführen.

Grüße
Andreas
_________________

Andreas Geißler
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2010, 14:39     Titel:
  Antworten mit Zitat      
Hallo Andreas,

ok wenn ich den Code so schreibe:
Code:
all = ['save ' fullname]


dann kommt unter Verwendung von:

Code:


die Fehlermeldung:

Code:

??? Error using ==> save
Variable 'and' not found.
 


d.h. er erkennt wiederrum den Pfd nicht als Pfad an sondern als Variablenname o.ä.

Grüße
 
aj.geissler
Forum-Guru

Forum-Guru



Beiträge: 251
Anmeldedatum: 26.11.07
Wohnort: Seeheim-Jugenheim
Version: ---
     Beitrag Verfasst am: 31.08.2010, 17:52     Titel:
  Antworten mit Zitat      
Hi,

das Problemchen ist hier der Pfad. Er enthält 2 Leerzeichen, so daß als Pfad nur der Teil bis zum 1. Leerzeichen interpretiert wird.

1)
Abspeicherung - falls möglich und Administratorrechte vorhanden - in einem anderen Pfad, der keine Leerzeichen hat.

2)
Auch die Verwendung von Alias-Namen könnte eine Abhilfe darstellen.

3)
Den Pfad in "doppelte" Anführungszeichen setzen.

Grüße
Andreas
_________________

Andreas Geißler
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.09.2010, 12:24     Titel:
  Antworten mit Zitat      
Hallo Gast,

aj.geissler hat Folgendes geschrieben:

meinstring="save " + fullname + " Daten"
eval(meinstring)

In Matlab wäre das:
Code:
meinstring= ['save ', fullname, ' ''Daten''']
% Beachte: '' sind zwei Quotes, kein Double-Quote!
 


Davon würde ich aber definitiv abraten. Es gibt keinen Grund das langsame und fehleranfällige EVAL zu verwenden, wenn die Documentation von SAVE eindeutig erklärt, wie man das lösen kann. Siehe also:
Code:

Dort findest Du:
Code:
save(fullname, 'Daten');


ASSIGNIN, EVALIN und EVAL machen einem Programmierer auf Dauer das Leben sehr schwer.

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