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

Zeitfenster setzen und Vektoren an dieser Stelle auswerten

 

Juli
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 15.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.03.2013, 12:17     Titel: Zeitfenster setzen und Vektoren an dieser Stelle auswerten
  Antworten mit Zitat      
Liebe Matlab- Gemeinde,

ich stehe mal wieder vor einem Problem...

Und zwar möchte ich rausfinden, ob eine von einer Versuchsperson gegebene Antwort innerhalb eines Versuchsteils richtig war. Ich habe verschiedene Bedingungen, die erfüllt sein müssen, um eine Antwort als richtig gelten zu lassen.

Ich möchte jetzt eine Schleife mit den entsprechenden if- Abfragen über die kompletten Daten, die in einem struct organisiert sind) laufen lassen (data), wobei für jeden Einzelversuchsteil (data.trial(n)) am Ende ein Vektor mit 0 = falsch bzw. 1 = richtig rauskommen soll (data.trial(n).correct).

Zuerst muss ich dafür ein Zeitfenster (das, in dem die Antwort erfolgte) definieren. In dem Zeitraum müssen alle weiteren Bedingungen (zB. Geschwindigkeit und Position) zutreffen. Dafür habe ich zunächst einen Vektor (timewindow) gebildet, der überall 0 stehen hat und für das gewünschte Zeitfenster 1.

So sieht dann der Vektor für das Zeitfenster aus:

Code:
time= [1 2 3 4 5 6 7 8 9 10]
timewindow= [0 0 0 0 0 1 1 1 1 0]


In meinem workspace habe ich jetzt diese beiden Vektoren und noch andere (alle gleich lang), die in diesem Zeitfenster bestimmte Bedingungen erfüllen müssen.

Bsp:
Code:
position= [-3 -2.5 - 2 -1 0 1 2 3 3.5 5]
velocity = [12 11 15 45 66 78 98 35 21 10]


Wie kann ich denn jetzt weiter vorgehen, um
1. genau das Zeitfenster auszuwerten und
2. auch die anderen Bedingungen (zB. velocity, xposition) innerhalb dieses Zeitraums auszuwerten? Und
3. möchte ich halt wirklich nur für jeden Versuchsteil eine 1 oder 0 ausgegeben bekommen und nicht für jeden Wert innerhalb der Vektoren

Ich hoffe das war jetzt nicht zu wirr und ihr versteht was ich meine.

LG Juli
Private Nachricht senden Benutzer-Profile anzeigen


Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 01.03.2013, 23:26     Titel:
  Antworten mit Zitat      
Hallo Juli,

Mittels logischer Indizierung kannst du aus den Daten-/"Bedingung"-Vektoren die Werte extrahieren, die innerhalb des Zeitfensters liegen.
Hier mal ein Beispiel:

Code:
time        = [1 2 3 4 5 6 7 8 9 10];
timewindow  = [0 0 0 0 0 1 1 1 1 0];
position    = [-3 -2.5 - 2 -1 0 1 2 3 3.5 5 6];
velocity    = [12 11 15 45 66 78 98 35 21 10];

log_timewindow = logical(timewindow);
% log_timewindow = time > 5 & time < 10;

% Werte, die im Zeitfenster liegen (logische Indizierung):
window_position = position(log_timewindow);
window_velocity = velocity(log_timewindow);

% Hier prüfen, ob die Bedingungen erfüllt sind:
posi_1      = all(window_position < 6);
velo_1      = all(window_velocity > 20);
correct_1   = posi_1 && velo_1;

posi_2 = all(window_position < 4);
velo_2 = all(window_velocity > 50);
correct_2   = posi_2 && velo_2;

posi_3 = all(window_position < 4);
velo_3 = all(window_velocity > 20);
correct_3   = posi_3 && velo_3;


Beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Juli
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 15.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2013, 09:45     Titel:
  Antworten mit Zitat      
Danke schonmal, ich werd mich mal reindenken Smile .
Private Nachricht senden Benutzer-Profile anzeigen
 
Juli
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 15.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2013, 12:04     Titel:
  Antworten mit Zitat      
Vielen Dank, es klappt Smile !
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 - 2025 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.