|
tomtoerzs |
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 24.05.12
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.05.2012, 16:10
Titel: Aus Messdaten nx3 Matrix
|
|
Hallo!
Ich muss für meine Bachelorarbeit ein paar Daten auswerten.
Probier nun seit ein paar Stunden die Daten in eine Matrix umzuformen.
Ich habe folgende Messdaten in einer txt Datei:
23.05.2012 14:37:27;6,73;-27,06;23,55;0;0;
23.05.2012 14:37:57;6,85;-26,93;23,57;75,24;0;
23.05.2012 14:38:27;6,96;-26,8;23,59;555,59;0;
23.05.2012 14:38:57;7,04;-26,67;23,61;75,25;0;
...
Wenn man Datum und Zeit schonmal getrennt betrachtet hat man eine nx7 Matrix. Mich interessieren die folgenden Vektoren.
Datum, Zeit und der vorletzte Eintrag (Gewicht in g)
Ich hätte gerne aus der txt Datei eine nx3 Matrix mit den eben genannten einträgen.
Zusätzlich würde ich ab der ersten Zeile den Zeiteintrag gerne auf 0 setzten und den sekündlichen Abstand zur nächsten Zeile in dieser anzeigen lassen. Also 0 30 60 90 usw...
Ich komme absolut nicht weiter.
Bin blutiger Anfänger und würde mich über jede Hilfe freuen.
Gruß
Tom
|
|
|
|
|
Vito |
Forum-Guru
|
|
Beiträge: 315
|
|
|
|
Anmeldedatum: 02.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.05.2012, 16:29
Titel:
|
|
Hi,
so kommst du ans Ziel
Dann musst du noch bissle mit "cell" rumspielen, aber schaffst du schon selbst und falls nicht, dann melden
Gruß,
Vito
|
|
|
tomtoerzs |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 24.05.12
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.05.2012, 17:46
Titel:
|
|
Danke erstmal für die schnelle Hilfe!
Die txt Datei bekomme ich ja noch eingelsen, aber dann hörts leider auch schon auf.
Mein Output für A sieht nach deinem code so aus:
Ich weiß nicht, wie ich die Parameter ändern soll und weiß leider überhaupt nicht weiter...
aus doc textscan werd ich auch nicht schlau.
ein paar Tips wären sehr nett!
Danke im Vorraus!
Tom
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.05.2012, 18:17
Titel:
|
|
Hallo,
zunächst solltest du die Datei vorverarbeiten und die Kommas durch Punkte ersetzen, da MATLAB als Dezimaltrennzeichen den Punkt braucht. Google sollte helfen, ein passendes MATLAB-Skript zu finden.
Bei dem Formatstring für textscan sollte man %s nur für Strings verwenden; für numerische Daten sollte %f verwendet werden. Wenn du Felder nicht brauchst, kannst du sie mit * (also z.B. %*f) überspringen.
Wenn du die Daten mal in MATLAB hast, würde ich datenum verwenden, um das numerische Datumsformat zu bekommen. Dann kannst du dir leicht den Unterschied in Tagen und somit auch in Sekunden holen.
Grüße,
Harald
|
|
|
tomtoerzs |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 24.05.12
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.05.2012, 16:50
Titel:
|
|
Danke für die Antwort!
Habe bis jetzt die Daten in folgendes Format umgewandelt
Habe die Kommas und Doppelpunkte durch Punkte ersetzt und die Semikolons durch spaces.
Die neue Datei lese ich ein über:
Doch textscanbefehl macht mir immernoch Schwierigkeiten.
Ich weiß nicht, welche specifiers ich wie einsetzen soll...
Ich will ja nur die erste, zweite und vorletzte Spalte zu einer Matrix zusammenfassen.
Zusätzlich würde ich ab der ersten Zeile den Zeiteintrag gerne auf 0 setzten und den sekündlichen Abstand zur nächsten Zeile in dieser anzeigen lassen. Also 0 30 60 90 usw...
Ich komme nicht weiter und freue mich über jede Hilfe.
Danke
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 28.05.2012, 16:57
Titel:
|
|
Hallo,
was die Specifier angeht:
Zitat: |
Bei dem Formatstring für textscan sollte man %s nur für Strings verwenden; für numerische Daten sollte %f verwendet werden. |
Datum / Zeit werden dabei als Strings behandelt.
Zu der anderen Frage habe ich auch schon etwas geschrieben.
Grüße,
Harald
|
|
|
tomtoerzs |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 24.05.12
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.05.2012, 14:48
Titel:
|
|
okay habe jetz folgenden code:
somit wird das datum einfach als zeichenabfolge eingelesen, die vektoren, die mich nicht interessieren, werden "ausgeschaltet" und der vorletzte Vektor wird eingelesen.
das datum mit datenum formatieren bekomm ich wohl auch noch hin.
die Ausgabe sieht wie folgt aus:
Wie gehts nun weiter? wie kann man sich die matrix anzeigen lasssen?
Danke und Gruß
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.05.2012, 15:06
Titel:
|
|
Hallo,
A ist nun ein Cell Array. Mit A{1} und A{2} kannst du dir die Inhalte der Zellen ansehen und auch damit weiterarbeiten, oder durch Doppelklick auf die Variable A im Workspace und dann weiteres Doppelklicken auf die Inhalte.
Mehr zu Cell Arrays kannst du hier nachlesen:
http://www.mathworks.com/help/relea.....tlab_prog/br04bw6-98.html
Grüße,
Harald
|
|
|
tomtoerzs |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 24.05.12
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.05.2012, 20:36
Titel:
|
|
okay habs hinbekommen!!!
Danke für die Hilfe!
Hier mein code:
Wenn ich mir die Daten nun in einer Matrix anzeigen lassen will und folgendes eingebe:
erhalte ich:
Ist es möglich sich die "wirklichen " Vektoren in einer Matrix darzustellen??
Also nicht mit
1.0e+05 * ...
Gruß und Danke!!!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 30.05.2012, 21:00
Titel:
|
|
Hallo,
die Anzeige kannst du mit dem Befehl FORMAT ändern.
Falls dir die Optionen da nicht ausreichen, kannst du die Matrix auch mit FPRINTF ausgeben lassen.
Grüße,
Harald
|
|
|
tomtoerzs |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 24.05.12
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.05.2012, 12:42
Titel:
|
|
super hat geklappt!
Habe jetzt eine weitere Datei aus Messdaten, welche ebenfalls mit einem Zeitstempel eingeleitet wird.
Die erste Zeile sieht wie folgt aus:
Kann ich diesen Zeitstempel auch in serial date number konvertieren?? Vorallem die Hunderstelsekunden machen mir zu schaffen!!??
Nehmen wir mal an die Hundertstelsekunden wären nicht vorhanden.
Dazu hatte ich mir folgendes überlegt.
Funktioniert aber leider auch nciht. Ist es denn überhaupt möglich das Jahr von Monat und Tag zu trennen??
Gruß
Tom
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 31.05.2012, 17:02
Titel:
|
|
Hallo,
Die Sachen nach 2012 gehören nicht mehr zum Datum, oder?
Grüße,
Harald
|
|
|
tomtoerzs |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 24.05.12
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.05.2012, 17:10
Titel:
|
|
korrekt nur bis 2012!
Komisch Matlab gibt mir immer:
Gruß
|
|
|
tomtoerzs |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 24.05.12
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.05.2012, 17:12
Titel:
|
|
wenn man die '...' beim DateString weglässt funktionierts!!!
|
|
|
tomtoerzs |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 24.05.12
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.05.2012, 22:14
Titel:
|
|
Danke!!!!!
Also:
Mein nächstes Problem ist, dass mein eines Messgerät alle 5sec misst (leider kann man in dem Programm kein Messintervall einstellen) und mein anderes Messgerät jede Minute!
Wäre es möglich zu den Zeiten aus den minütlichen Messungen den zugehörigen Wert aus den 5 sekündlichen Messungen zu errechnen, um so die beiden Messungen auf die selbe Zeilenanzahl zu bringen?
Ich habe also einen Zeitvektor (alle 5sec) und dazu Messwerte.
Und einen weiteren Zeitvektor (jede Minute) und dazu ebenfalls Messwerte.
Ich will sozusagen denn 5sec Vektor an den Anderen anpassen.
Ist mein Problem verständlich??
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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 - 2024
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.
|
|