Daten in Tabelle speichern < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 12:37 Mi 22.02.2006 | Autor: | Timbob |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo liebe Leute & Forumsteilnehmer,
ich schreibe gerade eine Studienarbeit und dazu arbeite ich so ziemlich das erste Mal richtig mit Matlab, wobei ich nun folgendes Problem habe:
Aus einem Versuchsfahrzeug werden Daten über CanAlyzer aufgezeichnet. Im ersten Schritt habe ich nun mittels CanGraph relevante Signale Isoliert, und die Daten als MDF File exportiert. Ich habe also für jede Fahrt des Versuchsfahrzeuges nun ein MDF File, insgesamt ca. 400.
In dem Programm, was ich geschrieben habe, oder eben noch schreibe, sollen nun verschiedene Berechnungen durchgeführt werden, z.B. werden Spannungsmittelwerte für verschiedene Lastbereiche berechnet. Oder es sollen Ereignisse gezählt werden, z.B. wie oft ein bestimmtes Ventil in einem bestimmten Lastbereich geöffnet wurde. Insgesamt sind es ca. 20 Werte, die am Ende ausgegeben werden sollen.
Die Berechnungen passieren auch alle nach meinen Vorstellungen, nun habe ich aber Probleme mit dem Einlesen der Daten und vor allen Dingen mit der Ausgabe:
Ausgegeben werden sollen die Daten in einer Tabelle, oder Matrix. Wo ich jetzt hänge ist, dass ich alle 400 Files nacheinander durch das Programm schicken möchte, und alle Werte in der Matrix untereinander gespeichert werden sollen.
Also z.B. der Spannungsmittelwert für File eins in der ersten Zeile, für den zweiten File dann in der nächsten Zeile, so das am Ende ein große Tabelle entsteht, mit ca. 20 Spalten und 400 Zeilen
Das Einlesen der Daten habe ich recht unelegant über eine switch Schleife gelöst, so dass jeder File nacheinander über load (File1) im case 1 und load (File2) im case 2 eingelesen wird und das Programm durchläuft. Denke funktioniert, ist aber irgendwie recht aufwendig, aber okay. Nun sollen die Daten also in einer Matrix gespeichert werden. Wenn es gehen würde gleich in eine Art Exet Tabelle. Denke geht aber nicht. Bisher habe ich es so versucht, dass die berechneten Werte in die Matrix M geschrieben werden:
M=[Werte 1,Wert2...usw.], dann über
csvwrite(´Datenauswertungstabelle.dat´,M) und
save Datenauswertungstabelle.dat M ascii
Bei einem File funktioniert das. Wenn ich dann den gespeicherten File Datenauswertungstabelle.dat im Editor öffne sehe ich die Werte alle in einer Zeile. Sobald ich aber mehrere Files hintereinander berechne, werden die Werte fortlaufend überschrieben, so dass ich am Ende immer nur die Werte des zu letzt durchgelaufen Files habe.
Hoffe ich habe das Problem verständlich schildern können. Sollte jemand für die Speicherung einen Rat oder eine Lösung für mich haben, wäre mir damit wirklich geholfen.
Vielen Dank im Voraus für Eure Mühen
Grüße
Timo
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:10 Mi 22.02.2006 | Autor: | dormant |
Hi!
Soweit ich verstehe, besteht das Problem darin das Datenoutputfile so richtig zu erzeugen.
Nach deiner Schilderung sollte folgender code das Problem lösen:
for i=1:max2 % max=Anzahl der Files, ca. 400 bei dir
csvwrite(output.dat, M(i,:), i, 0);
end
Siehe auch >>help csvwrite.
Gruß,
dormant
|
|
|
|