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

Frage zu save

 

JN78
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 69
Anmeldedatum: 18.05.09
Wohnort: Stuhr
Version: R2010b, R2011a
     Beitrag Verfasst am: 03.09.2010, 09:17     Titel: Frage zu save
  Antworten mit Zitat      
Hallo Zusammen,

ich komm grad gar nicht weiter., mein Code ist wie folgt:

Code:

function new_DBImport(File)
dbimport = dlmread(File, ';', 0, 1);  
save File dbimport
 


prinzipiell funktioniert das gut, nur sollen meine Daten nicht in "File.mat" gespeichert werden, sondern unter der Bezeichnung mit der ich die Funktion aufrufe.

Sprich wenn ich "new_DBImport(Leistung.csv)" aufrufe, dann sollen die Daten entsprechend unter "Leistung.mat" gespeichert werden und nicht unter "File.mat"

Könnte mir da jemand weiterhelfen?
Danke schonmal im voraus.
Gruß Jan
Private Nachricht senden Benutzer-Profile anzeigen


lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 03.09.2010, 10:48     Titel:
  Antworten mit Zitat      
Hi,
das sollte doch so funktionieren oder nicht:
Code:


fiename= 'Leistung';

save(filename,'dbimport')

 


Gruß,

Hristo
Private Nachricht senden Benutzer-Profile anzeigen
 
JN78
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 69
Anmeldedatum: 18.05.09
Wohnort: Stuhr
Version: R2010b, R2011a
     Beitrag Verfasst am: 03.09.2010, 11:14     Titel:
  Antworten mit Zitat      
Ja das funktioniert wohl, nur ist der Name dann festgelegt auf das hinter dem Gleichzeichen. Ich möchte das aber gerne Variabel halten und den Namen mit der Variablen "File" mit der ich auch die Funktion aufrufe übergeben.
Private Nachricht senden Benutzer-Profile anzeigen
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 03.09.2010, 11:39     Titel:
  Antworten mit Zitat      
ist unter File kein String gespeichert? kannst du vllt noch etwas Infos geben damit ich mir das genau vorstellen kann?
Private Nachricht senden Benutzer-Profile anzeigen
 
JN78
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 69
Anmeldedatum: 18.05.09
Wohnort: Stuhr
Version: R2010b, R2011a
     Beitrag Verfasst am: 03.09.2010, 12:33     Titel:
  Antworten mit Zitat      
Hallo,

also mehr Infos gibt es eigentlich gar nicht. Der Code ist nicht mehr und nicht weniger als die paar Zeilen.

Ich rufe das ganze dann mit "new_DBImport('Leistung.csv')" auf.
File sollte daher doch nen String sein, oder sehe ich das falsch?


Code:
function new_DBImport(File)
dbimport = dlmread(File, ';', 0, 1);  
save File dbimport


abgespeichert wird das dann unter "File.dat" und nicht unter "Leistung.dat" wie ich es mir wünschen würde. Mehr kann ich eigentlich nicht dazu sagen, hoffe das nun deutlicher geworden ist was man Problem ist.

Danke und Gruß Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.09.2010, 12:47     Titel:
  Antworten mit Zitat      
Hallo,

der Vorschlag von lilov war vollkommen korrekt. Du bräuchtest nur die erste Zeile weglassen und das auf deine Situation übertragen.

Code:
function new_DBImport(File)
dbimport = dlmread(File, ';', 0, 1);  
save(File, 'dbimport')


Ein Problem ist allerdings, dass mit save eine .mat-Datei erzeugt wird, dass die einzulesende Datei aber wohl eine andere Endung hat. Wie hast du dir das vorgestellt?
Vielleicht die Endung abschneiden?

Code:
function new_DBImport(File)
dbimport = dlmread(File, ';', 0, 1);  
save(File(1:end-3), 'dbimport')


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 03.09.2010, 14:00     Titel:
  Antworten mit Zitat      
Hi,
es gibt ein Unterschied on du save file dbimport schreibst oder save(file,'dbimport'), also mit Klammern schreibst. Wie Harald sagt solltest du eigentlich nur die Endung (.csv) vom String abschneiden.

Gruß,

lilov
Private Nachricht senden Benutzer-Profile anzeigen
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 03.09.2010, 14:36     Titel:
  Antworten mit Zitat      
Hi,

vllt gibt es auch eine elegantere Lösung aber du kannst es damit versuchen:

Code:

[dummy1, dummy2, dummy3, dummy4, dummy5, dummy6, splitStr]=regexp(file,'.csv');
save(char(splitStr(1,1)),'dbimport')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
JN78
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 69
Anmeldedatum: 18.05.09
Wohnort: Stuhr
Version: R2010b, R2011a
     Beitrag Verfasst am: 04.09.2010, 09:45     Titel:
  Antworten mit Zitat      
Guten Morgen,

vielen Dank für Eure Tipps, es klappt nun.
Mir war nicht bekannt das es einen unterschied macht, ob man save() oder save nutzt.

Jan
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: 06.09.2010, 14:37     Titel:
  Antworten mit Zitat      
Hallo Jan (78),

das gilt für alle Matlab-Befehle, so weit ich weiß bis auf GLOBAL.
Code:
strcat asd bsd
% oder
strcat('asd', 'bsd')
% oder
a = 'asd';
b = 'bsd';
strcat(a, b)

Das scheitert, wenn Matlab nicht mehr erkennen kann, ob die einzelnen Argumente Strings, Zahlen oder Operatoren sind:
Code:
strcat 4 4
% ==> '44'
strcat * 4
% ==> error: strcat: not enough input arguments
dir *
% ==> läuft genau wie "dir('*')"

Unter Matlab 6.5 lief "strcat * 4" übrigens noch und antwortete den String '*4'.

Ebenfalls bemerkenswert:
Code:
hold on;  % oder hold('on');
axis tight; % oder axis('tight');
strcat a b;  % ans ist 'ab', nicht 'ab;' !!!


Merkwürdigerweise schafft diese Freiheit gerade bei LOAD und SAVE sehr häufig Probleme in diesem Forum, obwohl es im help text beschrieben wird.

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.