|
|
|
mehrere texdateien einlesen und als Array in Matlab benutzen |
|
| Driss |

Forum-Anfänger
|
 |
Beiträge: 45
|
 |
|
 |
Anmeldedatum: 13.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.09.2011, 13:17
Titel: mehrere texdateien einlesen und als Array in Matlab benutzen
|
 |
Hallo Leute,
ich brauche euer Hilfe!!
ich möchte aus mehreren texdateien Messwerte einlesen und jeder
textdatei als matrix speichern für weitere Berechnungen.
Jeder textdatei beinhaltet mindestens 2 Spalten mit unterschiedlichen Zeilen.
Danke im Vorraus.
|
|
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 28.09.2011, 15:25
Titel: Re: mehrere texdateien einlesen und als Array in Matlab benu
|
 |
Hallo Driss,
Was hast Du denn bisher versucht und welche konkreten Probleme sind aufgetreten?
Gruß, Jan
|
|
|
|
| Driss |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 45
|
 |
|
 |
Anmeldedatum: 13.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.09.2011, 07:52
Titel:
|
 |
Hallo Jan,
ich habe mehrere textdateien, die messungen enthalten. Jede Datei mindestens 2 Spalten und jede Messung wurde bei unterschiedlichen Lastfällen gemacht.
Bsp: für die Datei 'wheel_travel_camber_track.txt';
weg winkel
m
x y
xx yy
xxx yyy
..... ....
... .....
... .....
n
x y
xx yy
xxx yyy
..... ....
... .....
... .....
k
x y
xx yy
xxx yyy
..... ....
... .....
... .....
unter anderem gibt es auch die Excel Format. Soweit bin ich noch nicht.
Die textdateien kann ich auslesen, allerdings mit einer langen While Schleife.
Mein Vorgehen bis jetzt:
Die if mache ich für a, b, c, d, und e. Hinter der if Anweisung gibt es normalerweise auch ein for Schleife um die non-number wie m, n, und k zu eliminieren.
Somit habe ich eine lange While Schleife, was den leser villeicht verwirt macht.
Danke im Vorraus.
Driss.
_Peter_: Bitte COdeumgebung verwenden. Danke.
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 29.09.2011, 09:23
Titel:
|
 |
Hallo Driss,
Ich bin in der Tat verwirrt.
Stehen in den Text-Files "x, xx, xxx" oder sind das Zahlen?
Wozu definierst Du "a", "b", "c", "d" und "e"?
Wird "i" innerhalb der WHILE-Schleife verändert? Vielleicht i=i+1?
Wäre eine FOR-Schleife nicht einfacher?
Gibt es auch ein FOPEN?
Wäre ein Vergleich "i==1" nicht besser als "K{i} == a"?
Zudem sollte "K{i} == a" eine Fehler ergeben, wenn "K{i}" und "a" unterscheidlich viele Elemente haben. Ich vermute, Du meinst "strcmp(K{i}, a)", aber "i==1" wäre immer noch effizienter.
Viele Grüße, Jan
|
|
|
|
| Driss |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 45
|
 |
|
 |
Anmeldedatum: 13.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.09.2011, 12:51
Titel:
|
 |
Hallo Jan,
ich danke dir für die Antwort. Ich denke, es wäre gut, wenn ich dir den Cod poste, ist das Oky?
Driss
|
|
|
|
| _Peter_ |

Moderator
|
 |
Beiträge: 537
|
 |
|
 |
Anmeldedatum: 08.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.10, 2010a
|
 |
|
|
 |
|
Verfasst am: 29.09.2011, 16:59
Titel:
|
 |
| Driss hat Folgendes geschrieben: |
Hallo Jan,
ich danke dir für die Antwort. Ich denke, es wäre gut, wenn ich dir den Cod poste, ist das Oky?
Driss |
Hallo Driss,
warum machst du das nicht einfach?
_________________
Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 29.09.2011, 22:20
Titel:
|
 |
Hallo Driss,
Ja, das Posten des relevanten Codes ist eine gute Idee. Wenn dann viele Leute im Forum drüber schauen, findet sich (fast) immer einer, der einegute Idee hat.
Gruß, Jan
|
|
|
|
| Driss |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 45
|
 |
|
 |
Anmeldedatum: 13.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.10.2011, 12:40
Titel:
|
 |
Hallo Zusammen,
hier ist mein Code als tex.file und dazu ein Beispiel für ein Tex datei.
Danke im Vorraus.
Driss
| Beschreibung: |
|
 Download |
| Dateiname: |
auslesen.txt |
| Dateigröße: |
7.55 KB |
| Heruntergeladen: |
369 mal |
| Beschreibung: |
|
 Download |
| Dateiname: |
travel_angle.txt |
| Dateigröße: |
1.16 KB |
| Heruntergeladen: |
327 mal |
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 02.10.2011, 20:04
Titel:
|
 |
| |
 |
|
Hallo Driss,
Was ist nun die genaue Frage zu dem Programm?
Es ist übrigens ungewöhnlich den Code als TXT (nicht TEX zum Glück) zu posten. Normlerweise werden dazu M-Files benutzt.
Vorerst nur ein paar Kleinigkeiten:
1. "clear all" löscht neben allen Variablen auch alle Funktionen aus dem Speicher. Bei der nächsten Verwendung müssen sie dann sehr zeitraubend wieder von der Platte gelesen und übersetzt werden. Ausser das Programm drastisch zu verlangsamen hat das keinen Vorteil.
"clear variables" kann unter sehr seltenen Umständen zumindest einen gewissen Vorteil bieten: Wenn man in einem Script in einer Variablennamen einen Tippfehler hat und so aus Versehen auf eine Variable zugreift, die ausserhalb definiert wurde.
Um dies zu verhindern, wäre es aber viel besser den Code in eine Funktion zu packen, weil dann MLint direkt auf den Fehler hinweisen würde.
2. Ich finde
übersichtlöicher als:
Aber das ist Geschmackssache.
Ansonsten würde ich noch Auto-Indent drüber laufen lassen.
Gruß, Jan
|
|
|
|
| Driss |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 45
|
 |
|
 |
Anmeldedatum: 13.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.10.2011, 21:45
Titel:
|
 |
Hallo Jan,
zuerst, ich danke dir für die schnelle Antwort. Mit m-file hast du natürlich recht aber in der Zeit, wo ich das Programm posten möchte, hatte ich Matlab nicht auf meinem Rechner gehabt und da müsste ich die Änderungen in txt-Format durchführen und absenden.
1. Die genaue Frage zu dem Programm ist, ob es eine Möglichkeit gibt, es kleiner und übersichtlicher zu machen. Denn es sind insgesamt 12 TXT und 4 Excel Dateien, die ausgelesen werden müssen. Vieleicht durch eine Funktion.
2. Die 'clear' Funktion ist hier nur für den Test. Damit ich nicht immer die Funktion bei erneuter Ausführung des Programmes eingeben muss.
3. Ich habe es versucht mit
for j = 2:xxx
...
end
zu schreiben, aber die Schleife läuft nicht weiter sondern es wiederholt sich das gleiche!. Ich mache bestimmt ergendwo einen Fehler.
4. Ich habe es nicht verstanden, was du meinst, mit 'Ansonsten würde ich noch Auto-Indent drüber laufen lassen'.
Gruß zurück
Driss
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 03.10.2011, 15:33
Titel:
|
 |
Hallo Driss,
| Zitat: |
| 4. Ich habe es nicht verstanden, was du meinst, mit 'Ansonsten würde ich noch Auto-Indent drüber laufen lassen'. |
M-File in Eitor öffnen, alles markieren (Strg-A), Menü Text->Smart-Indent (Strg-I). Damit werden die Zeilen automatisch eingerückt. Das verbessert die Übersichtlichkeit.
Du hast eine große Zahl überflüssiger Klammern im Code:
Ich bin verwirrt über:
Muss es in der letzten Zeile nicht "k1(1)" heißen und es fehlt eine schließende Klammer? Hier wäre es übrigens effizienter FIND gleich nur den ersten passenden Wert suchen zu lassen:
Gruß, Jan
|
|
|
|
| Driss |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 45
|
 |
|
 |
Anmeldedatum: 13.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.10.2011, 19:55
Titel:
|
 |
Hallo Jan,
ich danke dir für deine Antwort. Ja stimmt man kann natürlich die Klamern reduzieren.
Ich bin immer noch dabei mit den Gedanken, daß ich ein Program für die Berechnung und Initialisierung schreibe, und diese dann an Simulink-modell verknüpfe.
Das Problem ist, daß ich 6 unterschiedliche Inputs an das Simulationmodell zur Verfügung stellen muss. Im Grunde genommen muss ich 6 unterschiedliche Initialisierungsdateien erstellen. Ich habe aber für jedes Simulationsmodell ca. 8 m-files. Für eine Input bzw. Simulation brauche 12 txt Dateien und 4 Excel Dateien auszulesen und zu filtern. also das Simulationsmodell benötigt viel Zeit.
Gibt es dafür eine Lösung?
Gruß
Driss
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 05.10.2011, 09:35
Titel:
|
 |
Hallo Driss,
Die Beschreibung des Problems ist nicht so klar, dass mir dazu ein Lösungsvorschlag einfallen würde.
Wenn das programm langsam ist, lohnt es sich per PROFILE die Abschnitte zu finden, die die meiste Zeit benötigen. Wenn Du diese dann hier postest, lassen sich bestimmt ein paar Beschleunigungen finden.
Gruß, Jan
|
|
|
|
| Driss |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 45
|
 |
|
 |
Anmeldedatum: 13.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.10.2011, 21:37
Titel:
|
 |
Hallo Jan,
was meinst du mit per PROFILE?. Wie geht das?. Zu dem Problem werde ich erst mal mein Vorgehen testen und dann schaue ich mal, wie schnell die Simulation ist.
Danke Jan.
Gruß
Driss
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 05.10.2011, 22:57
Titel:
|
 |
Hallo Driss,
siehe:
Gruß, Jan
|
|
|
|
|
|
|
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.
|
|