WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Daten aus Stream lesen

 

chemichem
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 27.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2019, 13:12     Titel: Daten aus Stream lesen
  Antworten mit Zitat      
Hallo, komme bei meinem MATLAB-Code nicht weiter und würde euch gerne um Rat fragen:

Ich möchte aus einem Datenstream für Eye-Tracking bestimmte Werte auslesen. Da ich nur für bestimmte Messabschnitte die Werte betrachte (bestimmte Versuchsblöcke) wurde der Stream erstmal nur in den Versuchsblöcken "(block_names)"betrachtet. Das Beispiel ist ein Pupillendurchmesser des linken Auges. Durch die find funktion habe ich mir alle nonzero elemente ausgegeben lassen für die jeweiligen Blöcke und kann dafür z.b. den "mean" berechnen. So werden aus 50.000 Messpunkten durch die bestimmten Messpunkte nur noch 10.000.
Die Messpunkte springen bei einem Blinzeln des Auges auf den Wert "0" und bleiben dort, bis das Auge wieder aufgeht; es gibt also mehrere Punkte die gleich 0 sind für einen kurzen Moment. Springen somit also sehr oft auf "0" und dann schnell wieder zurück. Die Funktion "find" gibt ja nun alle nonzero elemente aus. Ich benötige jetzt eine Funktion, womit ich zählen, kann wie oft geblinzelt wurde. Das bedeutet, ich will für jeden Block einen Zähler haben, wie oft der Wert auf "0" geht. Hierbei fehlt mir noch der Ansatz, da der Zähler ja nur einmal die "0" zählen soll und nicht die ganzen Punkte auf der X-Achse=0.

Hat jemand eine Idee, wie man so eine Funktion aufstellen kann?

[Ich dachte an sowas wie die Funktion bei Wert=0,1 zählen lassen und dann durch 2 teilen (da der Wert pro Blinzeln ja 2 mal die 0,1 passieren muss)] Leider fehlt mir dafür das wissen, nach dieser Funktion umzustellen, habe den roten Matlab-Code "blink-counter" mal angefangen, aber das stimmt so nicht...

Vielen Dank für eure Hilfe..

pupil_left = s{eyetrackingStreamID}.time_series(7,: );

for i_block = 1:length(block_names)
pupil_left_this_block =...
pupil_left(find(s{eyetrackingStreamID}.time_stamps>=blocks_start_end(i_block,1),1,'first'):...
find(s{eyetrackingStreamID}.time_stamps<=blocks_start_end(i_block,2),1,'last'));
blocks_pupil_left(i_block,: ) = mean(pupil_left_this_block);

blink_counter=pupil_left(find(~s{eyetrackingStreamID}.time_stamps>=blocks_start_end(i_block,1)):...
find(~s{eyetrackingStreamID}.time_stamps<=blocks_start_end(i_block,2)));

end

https://imgur.com/w6pqKya
https://imgur.com/0XS592H
Private Nachricht senden Benutzer-Profile anzeigen


sijuherm
Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 01.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2019, 11:47     Titel:
  Antworten mit Zitat      
Wenn es dir nur um dir nur auf die Anzahl der Blinzelvorgänge ankommt, geht das deutlich einfacher:
1. Bestimme alle Zeitpunkte, an denen das Auge geschlossen ist.
2. Bestimme die Differenz zwischen diesen Zeitpunkten
3. Entferne alle Einträge, die direkt aufeinander folgen (= das Auge war zwischendurch nicht wieder offen)
4. Zähle die verbleibenden Einträge und addiere 1 (der diff-Funktion geschuldet)

Code:
idxAugeZu = find(pupil_left==0);
tAugeZu = diff(idxAugeZu);
tAugeZu (tAugeZu ==1)=[];
nBlinzel = length(tAugeZu) + 1;
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.