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

Matrix Spaltenweise in ein ASCII file speichern.

 

Paet0r
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 13.08.10
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 25.08.2010, 16:37     Titel: Matrix Spaltenweise in ein ASCII file speichern.
  Antworten mit Zitat      
Einen wunderschönen guten tag, Leute =)
Hab da grade n kleines Verständnisproblem und bräuchte dringend eure Hilfe =)
Habe eine große 7x100² Matrix, die ich spaltenweise in eine ASCII-Datei speichern soll, die folgende Form besitzt:

Code:

DATASET STRUCTURED_POINTS
DIMENSIONS nParticles 1 1
ORIGIN 0.0 0.0 0.0
SPACING 1.0 1.0 1.0

FIELD Particles 8
Position.X 1 nParticles float
% hier muss die erste spalte rein
posx1 % erster Eintrag
posx2 % zweiter Eintrag...etc.
…
posxn

Position.Y 1 nParticles float
 % hier kommt der zweite vektor hin.. etc.
1
…
n

Position.Z 1 nParticles float
% und hier der dritte und so weiter
1
…
n
 


habe es mit dem dlmwrite-Befehl versucht, aber irgendwie klappt das noch lange nich wies soll =)

So sieht mein trauriger code aus:(Matrix M wurde vorher geladen)
Code:

dlmwrite(eField.vtk, 'DATASET STRUCTURED_POINTS' \n, 'DIMENSIONS nParticles 1 1' \n, 'ORIGIN 0.0 0.0 0.0' \n,'SPACING 1.0 1.0 1.0', \n, (M(:,1)))
 

als Bsp. für den ersten Teil. Klappt aber irgendwie nicht =)
An welche Stelle muss ich beispielsweise die Sachen reinschreiben, die oben als "HEader" im ASCII-File erscheinen sollen? Oder is da fprintf-Befehl besser geeignet für?

Bitte um Hilfe =)
Ach ja, und noch als nebenfrage, kann ich in diese "dlmread"-Klammer auch irgendwo den Pfad eintrage, wo das hingespeichert werden soll? hab das bei Mathworks nicht gefunden.

Danke im Vorraus
Paet0r
Private Nachricht senden Benutzer-Profile anzeigen


Paet0r
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 13.08.10
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 25.08.2010, 19:11     Titel:
  Antworten mit Zitat      
Habe jetzt mit
Code:

fid = fopen('test.m','a');
    fprintf(fid,'DATASET STRUCTURED_POINTS \nDIMENSIONS nParticles 1 1 \nORIGIN 0.0 0.0 0.0 \nSPACING 1.0 1.0 1.0 \nFIELD Particles 8 \nPosition.X 1 nParticles float \n', M(:,1));
   
     fclose(fid);
 

Einen File test.m erschaffen, der schon mal den Header hat.
Jetzt dachte ich, das mit
Code:

Er die erste Spalte der Matrix da drunter schreibt, aber das macht er irgendwie nicht.
Kann irgendjemand helfen, bitte? =)
Wäre sehr dankbar für jeden Vorschlag.
Private Nachricht senden Benutzer-Profile anzeigen
 
Paet0r
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 13.08.10
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 26.08.2010, 15:36     Titel:
  Antworten mit Zitat      
..oder ist es evetuell möglich, nach dem ersten frpintf-Befehl noch einen zweiten mit M(:,1) einzufügen?
etwas so:



Code:

fid = fopen('test.m','a');
    fprintf(fid,'DATASET STRUCTURED_POINTS \nDIMENSIONS nParticles 1 1 \nORIGIN 0.0 0.0 0.0 \nSPACING 1.0 1.0 1.0 \nFIELD Particles 8 \nPosition.X 1 nParticles float \n',);
   fprintf(f, M(:,1));
     fclose(fid);
 


Da gibt er mir einfach nur einen leeren mfile raus.

Und bei den anderen varianten bekomme ich nur den Header, aber niemals die Spalte danach, die ich brauche.
Sitze total aufm Schlauch.. hat jemand evtl. einen Vorschlag oder Denkanstoß?
Private Nachricht senden Benutzer-Profile anzeigen
 
Paet0r
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 13.08.10
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 26.08.2010, 17:29     Titel:
  Antworten mit Zitat      
naja, habs mal selbst gelöst.. wenns jemand braucht:
Code:

f = fopen('test.m','a');
      fprintf(f,'DATASET STRUCTURED_POINTS \nDIMENSIONS nParticles 1 1 \nORIGIN 0.0 0.0 0.0 \nSPACING 1.0 1.0 1.0\n \nFIELD Particles 8 \nPosition.X 1 nParticles float \n');
         fclose(f);
      dlmwrite('test.m', M(:,1),'precision', '%.4f', '-append');
         dlmwrite('test.m', 'Position.Y 1 nParticles float','delimiter', '', '-append');
            dlmwrite('test.m', M(:,2),'precision', '%.4f', '-append') ;
               dlmwrite('test.m', 'Position.z 1 nParticles float','delimiter', '', '-append');
                  dlmwrite('test.m', M(:,3),'precision', '%.4f', '-append') ;


grüße
paet0r
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.