|
|
Vier Datensätze - Zeiten vergleichen |
|
jersey |
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 09.05.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.08.2017, 12:24
Titel: Vier Datensätze - Zeiten vergleichen
|
|
|
|
|
Guten Tag,
den Titel zu finden, war sehr schwer, aber ich werde versuchen hier mein Problem so gut es geht zu schildern.
Ich habe mehrere Sensoren, genau genommen zwei Laserscanner, ein Seilzugsystem und ein Raddrehzahlsensor (Odometrie), die mir eine X-Position und eine Y-Position ausgeben.
Also habe ich insgesamt drei Matrizen, jeweils in der ersten Spalte die Zeit, in der zweiten Spalte die X-Position und in der dritten Spalte die Y-Position.
Nun ist mein Problem, dass die Sensoren unterschiedliche Abtastfrequenzen besitzen und somit habe ich eine unterschiedliche Anzahl an Messpunkten. (Weiterhin kommt hinzu, dass die doppelte Abtastfrequenz leider nicht bedeutet, dass ich doppelt so viele Messpunkte habe)
Um diese Sensoren nun vergleichen zu können, würde ich gerne jeweils die Odometrie als Referenz nehmen und die Zeiten der Messwerte von den anderen Sensoren mit den Zeiten der einzelnen Messdatenschritte der Odometrie vergleichen. D.h. die x- und y-Position mit dem geringsten Zeitabstand dann in die jeweilige Zeitzeile (von der Odometrie) einer neuen Matrix schreiben. (Also eine Matrix mit der Zeit der Odometrie in der ersten Spalte, danach dann x- und y-Position der Odometrie, dann die X- und Y-Position des ersten Laserscanners und so weiter.)
Hat irgendwer eine Idee, wie ich das bewerkstelligen kann?
Ich habe keine Ahnung, ob meine Frage verständlich gestellt ist, bei Fragen gerne her damit .
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 12.08.2017, 17:16
Titel: Re: Vier Datensätze - Zeiten vergleichen
|
|
Hallo jersey,
Zitat: |
Ich habe mehrere Sensoren, genau genommen zwei Laserscanner, ein Seilzugsystem und ein Raddrehzahlsensor (Odometrie), die mir eine X-Position und eine Y-Position ausgeben. |
Meistens sind solche Details nur verwirrend. Für Matlab sind das alles Zahlen,und mehr muss man für eine Lösung oft nicht wissen.
Du suchst also zu den Zeiten in "odom" die jenigen Zeilen in den anderen Variablen, die den Werten in der ersten Spalte am nächsten liegen - richtig?
Das sind die Indices in Bezug auf "laser_1", die den Zeiten von "odom" am nächsten liegen.
Hilft das?
Gruß, Jan
|
|
|
jersey |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 09.05.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2017, 11:55
Titel:
|
|
Moin Jan,
danke für deine Antwort, langsam bin ich echt am verzweifeln .
Danke auch für die Anregungen, ich versuche das nun so simpel wie möglich zu halten.
Deine Idee klingt schon mal nicht schlecht: Ich suche für jeden Zeitpunkt der Odometrie eine passende Position des Lasers/Seilzuges, also wo der Abstand der Zeiten am geringsten ist.
Um das mal zu konkretisieren:
Odomdatensätze: 6366
Seilzugdatensätze: 6325 -> Hier sollen jetzt die Datensätze zu den Datensätzen der Odometrie geschrieben werden.
Nun habe ich versucht deine Code-Anregung in mein Programm einzupflegen, Matlab hat mir aber einen Fehler ausgespuckt:
Und X - also bei mir (hab das mal auf seilzug angewendet) seilzug hat 6325 Datensätze
V - also bei mir size von odom -> 6366
orig_size_V - also bei mir die Zeiten von Odom ->6366 Datensätze
Habe ich da was falsch verstanden?
Vielen Dank schonmal im Vorraus
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 14.08.2017, 14:19
Titel:
|
|
Hallo jersey,
Odom, Seilzugdatensätze, Laser, ... ???
Mich verwirren diese Details.
Zitat: |
Odomdatensätze: 6366 |
Dir ist sicherlich klar, was "Datensätze bedeutet. Ich kann es zumindest erraten.
Zitat: |
Und X - also bei mir (hab das mal auf seilzug angewendet) seilzug hat 6325 Datensätze V - also bei mir size von odom -> 6366
orig_size_V - also bei mir die Zeiten von Odom ->6366 Datensätze |
Das verstehe ich nicht.
Offensichtlich enthält mein Code einen Bug. Die ersten beiden Inputs von
interp1
müssen die gleiche Anzahl von Elementen haben. Dann:
Wenn Du statt der Beschreibung als Text die Daten postest, kann man solche Vorschläge leicht testen, bevor man sie abschickt. Ein winziger Datensatz mit 5 Zeiten und Werten würde schon reichen. Wenn die dann "a" und "b" heißen, muss man sich für die Antwort nicht durch Ausdrücke kämpfen, die für fachfremde nur verwirrend aussehen.
Gruß, Jan
|
|
|
jersey |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 09.05.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2017, 14:51
Titel:
|
|
Okay, ich hab mich jetzt nochmal hingesetzt das ganze meiner Meinung nach verständlich aufgeschrieben, was ich genau in einen Matlab-Code übersetzt haben möchte. (ohne verwirrende Worte wie z.b. odom, seilzug , sorry nochmal dafür).
Außerdem packe ich die beiden Datensätze mal als matfile mit in diesen Post.
Nicht erschrecken bei den Zeiten, die Daten wurden in Unixzeit aufgenommen.
Beschreibung: |
|
Download |
Dateiname: |
Problembeschreibung.pdf |
Dateigröße: |
16.27 MB |
Heruntergeladen: |
391 mal |
Beschreibung: |
|
Download |
Dateiname: |
data_b.mat |
Dateigröße: |
69.42 KB |
Heruntergeladen: |
283 mal |
Beschreibung: |
|
Download |
Dateiname: |
data_a.mat |
Dateigröße: |
69.22 KB |
Heruntergeladen: |
273 mal |
|
|
|
Lokdog |
Forum-Fortgeschrittener
|
|
Beiträge: 96
|
|
|
|
Anmeldedatum: 07.04.16
|
|
|
|
Wohnort: Heilbronn
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.08.2017, 07:12
Titel:
|
|
Hallo Jersey,
Ich hätte mehrere Ideen für dein Problem.
Lösung 1: Du könntest den Datensatz mit weniger Daten auf die Länge von dem Datensatz mit mehreren Daten interpolieren.
Lösung 2: Du könntest die deine 2 Matrizen "Mergen" müsste der 'join' Befehl sein, bin mir aber nicht sicher ob das mit unterschiedlichen größen funktioniert. Einfach mal Versuchen.
Lösung3: Du könntest aus deinen 2 Matrizen eine machen, erstmal ganz Stumpf zusammen führen.
-> Spalte 1 von Matrix 1 und Spalte 1 von Matrix 2 = Spalte 1 von Matrix 3. Einfach untereinander.
-> Spalte 2 von Matrix 2 = Spalte 2 von Matrix 3
-> Spalte 2 von Matrix 2 = Spalte 3 von Matrix 3
Final dann die Matrix 3, nach der ersten Spalte, ab-/aufsteigend, sortieren.
Grüße,
Lokdog
|
|
|
jersey |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 09.05.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.08.2017, 12:10
Titel:
|
|
Moin,
vielen Dank für eure Anregungen.
Ich habe mich jetzt mal ganz in Ruhe nochmal hingesetzt und mein Problem mit einigen For-Schleifen hinbekommen.
Danke trotzdem nochmal für eure Zeit und Hilfestellungen
Ein super Forum indem ich schon sehr viel Hilfestellungen bekommen habe.
|
|
|
|
|
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.
|
|