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

Kombination for-Schleife, num2str und save ???

 

Platin
Forum-Century

Forum-Century


Beiträge: 174
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.10.2010, 18:06     Titel: Kombination for-Schleife, num2str und save ???
  Antworten mit Zitat      
Hey an Alle,

ich habe folgenden Plan, es hapert aber an der Umsetzung:

Damals musste ich immer nur eine Matrix A erstellen. diese habe ich dann mit dem befehl
Code:
save 'Pfad C:/...txt, A -ascii -tabs'
als txt abgespeichert. Jetzt ist es aber so das ich nicht nur eine Matrix A erzeuge, sondern hunderte und jede einzelne soll im Pfad C:/... abgespeichert werden.
Damit ich am Ende aber überhaupt weiß welche von den hunderten Matrizen denn die war die zu erst gerechnet wurde und die die zum schluss gerechent wurde, muss ich mir da ja was einfallen lassen.
Und zwar habe ich versucht ein for schleife zu schreiben die im prinzip mitzählt. Bei jedem Rundgang sollte nun der entsprechenden matrix A der indizie y zu georndet werden.

So das ich im endeffekt im Pfad C:/... A(1), A(2)....A(N) zu stehen habe.
für y=1...N.

Normalerweise kann man das ja mit num2str machen, aber ich kann diesen num2str-befehl ja nicht mit save kombinieren.
habs schon versucht, wurd aber nix.
Code:
save 'Pfad C:/_num2str(y).txt, A -ascii -tabs'


Habt ihr ne idee wie man das anstellen könnte?
Wäre euch echt dankbar.

Grüße
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.10.2010, 18:53     Titel: Re: Kombination for-Schleife, num2str und save ???
  Antworten mit Zitat      
Hallo Platin,

wie bereits im anderen Thread:

Code:
save(sprintf('Pfad C:/_%d.txt', y), 'A', '-ascii', '-tabs')


Matlab-Befehle ohne Klammern zu verwenden ist meiner Ansicht nach eine Fehlerquelle, die kaum zu handhaben ist:
Code:

strcat 1 * 2
>> '1*2'
strcat * 2
>> Error using strcat: Not enough input arguments.
 

Intelligent, aber nciht wirklich hilfreich. Wieso das so oft bei SAVE zum Scheitern führt, bleibt mir ein Rätsel. Immehin geht "help save" doch genau auf diesen Fall ein.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Platin
Themenstarter

Forum-Century

Forum-Century


Beiträge: 174
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.10.2010, 21:08     Titel:
  Antworten mit Zitat      
Hey jan,

ich danke dir für deine antwort.
schade das ich es am We leider nicht testen kann, aber Montag versuche ich es gleich und schreibe zurück ob es gefunzt hat.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Platin
Themenstarter

Forum-Century

Forum-Century


Beiträge: 174
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.10.2010, 11:05     Titel:
  Antworten mit Zitat      
Hey, ich hätte mal noch ne Frage dazu.
Es ist so das es passend zu jedem y-Wert ein Namen gibt.
Also für y=1 zum beispiel =XC_T oder so.
diese namen stehen in einer cell name. Kann ich mit dem befehl den du mir gegeben hast nicht eigentlich auch diese cell auslesen so, das meine matrizen nicht nur A1, A2, ...An heißen sondern, eben XC_T anstelle von A1 oder TEP_R anstelle von A2...?
Villeicht in der Art:
Code:
save(sprintf('Pfad C:/_%d.txt', name{y}), 'A', '-ascii', '-tabs')
?
Müsste doch eigentlich auch gehen oder ?


MfG
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: 04.10.2010, 15:16     Titel:
  Antworten mit Zitat      
Hallo Platin,

Code:

Pfad = cd;  % Beispiel!
VarName = {'XC_T', 'TEP_R'};
FileIndex = {1, 2};
for i = 1:length(FileName)
  save(fullfile(Pfad, sprintf('_%d.txt', FileIndex{i})), ...
           VarName{i}, '-ascii', '-tabs');
end
 

Mit dem FULLFILE umgehe ich das Problem, dass "\" in SPRINTF als Escape-Char dient und auf Windows und Linux andere File-Separatoren benutzt werden. "Pfad" muss dann halt entsprechend definiert werden.

Meintest soetwas?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Platin
Themenstarter

Forum-Century

Forum-Century


Beiträge: 174
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.10.2010, 15:59     Titel:
  Antworten mit Zitat      
Hey,

danke erstmal für deine Antwort.
Erm, ja aber die sache mit dem \\ stört mich jetzt nicht wirklich.
Aber warum geht das nicht das ich in meinem skript anstelle von ...., yy->
Code:
schreiben kann? Kann ich nicht irgendwie erreichen dass das geht ?
Ich meine bei dir ist doch VarName auch ein Cell ?

Grüße
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: 07.10.2010, 00:16     Titel:
  Antworten mit Zitat      
Hallo Platin,

kannst Du bitte nochmal genau schreiben, was bei Dir nicht funktioniert?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Ajax
Forum-Century

Forum-Century


Beiträge: 176
Anmeldedatum: 09.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2010, 08:35     Titel:
  Antworten mit Zitat      
Hallo zusammen,

eine wahrscheinlich nicht ganz so schöne, aber auch mögliche Alternative ist:
Code:

for i = 1:n
    i_str = num2str(i);
    A = ... % restlicher Code
    save(['C:\...\A'  i_str  '.txt'], 'A', ...)
end
 


mfg
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.