|
|
Bestimmte Zeilen aus Textfile einlesen |
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 17.06.2012, 12:48
Titel:
|
 |
Hallo 01detlef,
Ich empfehle nochmal den Code, den ich bereits gepostet habe.
Haralds "data = [data; cell2mat(temp)];" hat das Problem, dass es das Array "data" immer wieder vergrößert, was speichertechnisch sehr aufwändig ist - siehe "pre-allocation".
Zitat: |
also ich habe das mit der Vektorgröße hinbekommen, aber bisher wird nur die erste Zahl nach dem | eingelesen. Die zweite Zahl usw. wird aber nicht eingelesen, weil dazwischen ja immer noch ein | kommt. |
Das verstehe ich nicht. Dies funktioniert:
Also nochmal:
Bitte erkläre nocheinmal, was an diesem Programm genau nicht funktioniert.
Eine Antwort auf meine Frage wäre hilfreich:
Zitat: |
Kannst Du vorher abschätzen oder sogar genau wissen, wieviele Zeilen eingelesen werden? |
Dann könnte ich bei Bedarf weiter Allocation-Strategien zeigen.
Gruß, Jan
|
|
|
|
|
01detlef |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 47
|
 |
|
 |
Anmeldedatum: 07.05.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.06.2012, 14:14
Titel:
|
 |
Hallo Jan,
also es gibt immer die Fehlermeldung mit der Datei, die ich gepostet habe:
??? Subscripted assignment dimension mismatch.
Error in ==> Einlesen_log2 at 13
data(:, cursor) = sscanf(aLine, '|%g');
detlef
|
|
|
01detlef |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 47
|
 |
|
 |
Anmeldedatum: 07.05.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.06.2012, 14:20
Titel:
|
 |
ach sorry mein Fehler....es geht!
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.06.2012, 18:12
Titel:
|
 |
Hallo,
@ Jan:
wie aufwändig die Verschiebung im Speicher im Vergleich zur Gesamtlaufzeit ist, hängt entscheidend davon ab, wieviele solcher Zeilen in der Datei vorhanden sind und ob sie in Blöcken vorliegen.
Es sollte gegebenenfalls kein Problem sein, meinen Code so umzuschreiben, dass er (blockweise) vorbelegt.
@ detlef:
Wird die Datei nun auch schnell genug gelesen, oder gibt es noch Performance-Probleme? Falls es noch Probleme gibt, bitte eine Datei posten, die wenigstens 1000 Zeilen hat (besser 10000) und die Struktur deiner Originaldatei hat, damit man eine vernünftige Grundlage zum Testen von Code hat.
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 17.06.2012, 22:05
Titel:
|
 |
Hallo Harald,
Zitat: |
wie aufwändig die Verschiebung im Speicher im Vergleich zur Gesamtlaufzeit ist, hängt entscheidend davon ab, wieviele solcher Zeilen in der Datei vorhanden sind und ob sie in Blöcken vorliegen.
Es sollte gegebenenfalls kein Problem sein, meinen Code so umzuschreiben, dass er (blockweise) vorbelegt. |
Genau.
Wenn Detlef sagt, dass das Programm bei nur 1e6 Zeilen stundenlang läuft, scheint eine blockweise Pre-Allocation sinnvoll.
Gruß, Jan
|
|
|
|
Gehe zu Seite Zurück 1, 2
|
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.
|
|