|
|
Zeitraum eines Events auslesen |
|
FReef |
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 11.10.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.11.2021, 18:03
Titel: Zeitraum eines Events auslesen
|
|
|
|
|
Hallo zusammen,
ich stehe vor einem Problem, zu dem ich bisher keine passende Lösung gefunden habe.
Im Anhang findet ihr die Datei "data.mat". Diese hat Drei Spalten und wird über diesen Code-Abschnitt durch das Einlesen einer "Example.csv" Datei erzeugt:
Jetzt die zu lösende Aufgabe:
In der 2. Spalte "FocusedCandidates" sind alle Objekte aufgeführt, die beobachtet wurden durch ein Komma getrennt.
In der 3. Spalte "ClickedCandidates" wird angezeigt, ob ein Objekt ausgewählt wurde. Das Objekt wird immer nach Event_clicked from beschrieben. Im Beispiel sind das "Image(Joystick Right)" und "Button(2)(Propulsion)". Was dahinter steht ist nicht wichtig.
Die Aufgabe besteht jetzt darin zu untersuchen, wie lange das Objekt angeschaut wurde (in Spalte 2) bevor es ausgewählt wurde (In Spalte 3). Die dazugehörigen Zeitpunkte stehen in Spalte 1.
Es muss also die Beschreibung des ausgewählten Objekts gelesen werden und dann soll in den vorherigen Zeitschritten gesucht werden, ob dieses Objekt angeschaut wurde bis zu dem Zeitpunkt, wo das Objekt nicht mehr vorkommt.
Im Beispiel ist das bei "Image(Joystick Right)" der Zeitraum von t= 0.11 bis t= 0.35. Insgesamt also 0.35s - 0.11s = 0.24s.
Und für "Button(2)(Propulsion)" von t = 0.53 bis t = 0.65. Ergibt 0.12s.
Diese Zeiten möchte ich alle speichern und danach einen Durchschnittswert berechnen.
Ich hoffe die Aufgabe ist verständlich.
Vielen vielen Dank für eure Hilfe!!!!
Beschreibung: |
|
Download |
Dateiname: |
data.mat |
Dateigröße: |
1.9 KB |
Heruntergeladen: |
267 mal |
|
|
|
|
|
FReef |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 11.10.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.11.2021, 18:26
Titel:
|
|
Kleiner Nachtrag:
Es reicht immer der Teil der Spalte 3 "ClickedCandidates" aus: ....Image(Joystick)... bzw. ...Button(2)...
Also das Wort nach "Event_clicked from" und das anschließende Wort in Klammern inkl. Klammern.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.11.2021, 09:26
Titel:
|
|
Hallo,
was hast du denn genau versucht? Welche Probleme sind dabei aufgetreten?
Kann in einer Datei ein Objekt mehrfach angesehen werden, d.h. kann später nochmal ein Block z.B. mit Image(Joystick) kommen?
Die Zeilen mit den ClickedCandidates kannst du z.B. so finden:
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
FReef |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 11.10.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.11.2021, 11:01
Titel:
|
|
In der Datei können alle Objekte mehrfach angesehen werden. Image(Joystick) kann bspw. mehrfach vorkommen, sowie alle anderen Objekte auch.
Ich habe versucht die Beschreibung in ClickedCandidates zu extrahieren:
Danach wollte ich den String am delimiter ")" spliten, aber das geht nicht weil die anderen Zeilen, welche nur "-" enthalten diesen delimiter nicht vorweisen.
Ein Ersetzen von '''-''' in NaN)NaN oder ähnliches hilft auch nicht, da unterschiedlich viele ")" bei ClickedCandidates vorkommen.
Mit der Beschreibung, bsp. Image(Joystick, wollte ich dann die Suche in der Spalte FocusedCandidates starten.
gibt mir schonmal die gesuchten Zeilen aus, auf deren Inhalt ich zugreifen muss.
Gibt es die Möglichkeit eine if-Schleife in etwa so aufzubauen:
Oder gibt es schönere Möglichkeiten? Danke für die Hilfe!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.11.2021, 11:33
Titel:
|
|
Hallo,
den Pseudo-Code hinzuschreiben ist doch fast mühsamer als den eigentlichen Code?
Vorschlag:
Ob das nun so für vermutlich längere und vielleicht viele Dateien funktioniert oder ob es da weitere Sonderfälle gibt, muss sich zeigen.
Generell würde ich versuchen zu sehen, ob das Datenformat verbessert werden kann.
Spätestens die unterschiedliche Leerzeichensetzung bei "Image (Joystick Right)" zwischen "Image" und "(" erscheint absurd. Ich habe mir damit beholfen, die Leerzeichen einfach rauszuschmeißen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
FReef |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 11.10.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.11.2021, 13:11
Titel:
|
|
Vielen Dank Harald!
Der Code funktioniert super!
Ich musste lediglich die erste Zeile aus meiner Datei löschen, da diese keinen Inhalt enthält, da habe ich immer einen Fehler bekommen "invalid Input...".
Funktioniert jetzt auch für meine Dateien mit ca. 20000 Zeilen.
Mega gut, ich bin total happy und hab wieder viel gelernt!
Beste Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.11.2021, 13:55
Titel:
|
|
Hallo,
meine Empfehlung wäre, sich mal ein Histogramm der Zeiten anzusehen. Es kann ja durchaus sein, dass es da Ausreißer gibt, die das Bild sehr verzerren. Dann können
median
oder
trimmean
geeigneter sein.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
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.
|
|