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

Schrittzyklen aus Matrix schneiden

 

PelleLovesPeace
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.02.2017, 15:52     Titel: Schrittzyklen aus Matrix schneiden
  Antworten mit Zitat      
Hallo,

ich habe in einer Matrix (513,107) für 513 Frames mit 107 Sensoren Fußdrücke gemessen. In den 513 Frames sind 8 Schrittzyklen enthalten. Ziwschen den einzelnen Zyklen gibt es Phasen, wo kein Druck vorhanden ist, da der Fuß abgehoben ist. Hier zeigen die Sensoren alle eindeutig 0 (kein Rauschen).

Ich möchte jetzt gerne die einzelnen Start- & Endpunkte für die Zyklen über die Nullen bestimmen. Da die Sensoren jeweils etwas andere On- & Offsets haben, habe ich meine Schleife wie folgt geschrieben:

Code:
start = zeros(1,107);
ende = zeros(1,107);
Schrittzyklus1 = zeros(70, 107);
L_1_data = logical(L_1_data);
for n = 1 : n_Frames % Messzeitpunkte
    for k = 1 : n_Sensoren % Sensorenanzahl
start = find( L_1_data(n,k) == 1);
ende = find(  L_1_data(n,:) == 0);

Schrittzyklus1 = L_1_data(start:ende);
end
end


Ich versuche also, den Punkt zu finden, an dem einer der Sensoren anspringt & mit dem Punkt zu enden, wo alle Sensoren wieder 0 sind. Ich bekomme dabei aber jetzt nur Schrittzyklus1 = 0. Also liegt irgendwo noch ein grober Schnitzer vor, den ich gerade einfach verzweifelt suche.

Vielen Dank für die Hilfe!

L_1_data.mat
 Beschreibung:

Download
 Dateiname:  L_1_data.mat
 Dateigröße:  2.27 KB
 Heruntergeladen:  185 mal
L_1_schneiden.m
 Beschreibung:

Download
 Dateiname:  L_1_schneiden.m
 Dateigröße:  433 Bytes
 Heruntergeladen:  216 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.02.2017, 16:27     Titel: Re: Schrittzyklen aus Matrix schneiden
  Antworten mit Zitat      
Hallo PelleLovesPeace,

Wie wäre dies:
Code:
hasSignal = any(L_1_data, 2);
start = strfind(hasSignal, [false, true]) + 1;
stop = strfind(hasSignal, [true, false]);


Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
PelleLovesPeace
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2017, 11:15     Titel:
  Antworten mit Zitat      
Hallo Jan,

wenn ich das über strfind, wie von dir vorgeschlagen mache, bekomme ich diese Fehlermeldung: Input strings must have one row.

Mir geht es ja aber gerade darum, dass in allen 107 spalten und 513 Zeilen das Onset gesucht wird, da ich es über den als erstes aktiven Marker und über den als letzten aktiven Marker definieren möchte (muss für On- & Off nicht der gleiche sein). Ich bin mir daher nicht ganz sicher, ob strfind die richtige Funktion ist.

Hast du vielleicht noch andere Ideen?

Danke für die Hilfe & LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.02.2017, 20:26     Titel:
  Antworten mit Zitat      
Hallo PelleLovesPeace,

Zitat:
wenn ich das über strfind, wie von dir vorgeschlagen mache, bekomme ich diese Fehlermeldung: Input strings must have one row.

Stimmt. Die Fehlerneldung hilft weiter:
Code:
hasSignal = any(L_1_data, 2).';

Man muss also einfach nur transponieren, dann hat man eine Zeile.

Zitat:
Mir geht es ja aber gerade darum, dass in allen 107 spalten und 513 Zeilen das Onset gesucht wird, da ich es über den als erstes aktiven Marker und über den als letzten aktiven Marker definieren möchte (muss für On- & Off nicht der gleiche sein).

Das verstehe ich nicht.
Mein Code erzeugt einen Vektor, dessen Wert TRUE ist, wenn irgendein Sensor zu diesem Zeitpunkt anspricht. Danach wird nach den Übergängen gesucht, bei denen das Signal von FALSE auf TRUE springt, oder umgekehrt.
Ist das nicht das, was Du suchst?

Gruß, Jan
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.