|
|
Speichern bzw. schreiben einer .mat-Datein in .txt-Datei |
|
Thomas K |

Forum-Anfänger
|
 |
Beiträge: 47
|
 |
|
 |
Anmeldedatum: 15.04.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2012, 17:45
Titel: Speichern bzw. schreiben einer .mat-Datein in .txt-Datei
|
 |
Hallo,
ich habe eine Matrix mit ca. 672000x322 Einträgen und möchte diese in einer Textdatei abspeichern. Mein Code tut auch das was ich mir vorstelle, jedoch dauert dieser Schreibvorgang sehr, sehr lange. Hat jemand eine Idee wie man das effizienter und schneller machen kann? Habe auch schon das Forum durchgesehen, aber etwas wirklich hilfreiches noch nicht gefunden.
Hier mein Code:
M ist die Matrix, die Elemente in den Zeilen sollen in der Textdatei durch Beistriche getrennt sein.
Freundliche Grüße, Thomas
|
|
|
|
|
Thomas K |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 47
|
 |
|
 |
Anmeldedatum: 15.04.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.07.2012, 08:41
Titel:
|
 |
Ich habe jetzt versucht die Schleife zu parallelisieren, bekomme aber immer die Fehlermeldung:
Error using parallel_function (line 598)
Invalid file identifier. Use fopen to generate a valid file identifier.
Error stack:
(No remote error stack)
Hier ist wieder mein Code:
Kann mir jemand sagen was nicht stimmt?
Gruß, Thomas.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.07.2012, 09:08
Titel:
|
 |
Hallo,
Parallelisieren geht hier in dieser Form nicht: die Iterationen einer parfor-Schleife müssen voneinander unabhängig sein.
Was man jedoch ausnutzen sollte ist, dass fprintf vektorisiert ist.
Für eine 1000x50 - Testmatrix bin ich da über 100 Mal schneller.
Bei M das Transponieren nicht vergessen!
Grüße,
Harald
|
|
|
Thomas K |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 47
|
 |
|
 |
Anmeldedatum: 15.04.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.07.2012, 10:23
Titel:
|
 |
Hallo Harald,
vielen Dank für deine rasche Antwort, du hast mir sehr geholfen dein Skript arbeitet sehr schnell und ist eigentlich genau das was ich gesucht habe (statt ca. 8h jetzt 150 s). Allerdings ist die Datei jetzt ungefähr 3 mal so groß (2GB), d.h. man kann sie mit dem Editor nicht mehr verarbeiten.
Vielleicht liegt das daran, dass die Einträge in der Form 1.000000 (bei einer Testmatrix mit lauter Einsen) gespeichert werden. Meine Frage ist, wie man unnötige Nachkommastellen weglassen kann?
Gruß, Thomas
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.07.2012, 10:30
Titel:
|
 |
Hallo,
da hilft die Dokumentation von FPRINTF:
%g statt %f verwenden.
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|