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

If-Schleife mehrmals ablaufen lassen

 

bildkuenstler
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 11.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.05.2017, 12:02     Titel: If-Schleife mehrmals ablaufen lassen
  Antworten mit Zitat      
Hallo!

als noch recht Unterfahrener Matlab User stehe ich zurzeit vor einem Problem.

Ich möchte gerne Dateien (matrizen) auswerten, welche Parallel zu einer Videoaufnahme aufgezeichnet wurden. Somit habe ich zu jedem Videoframe einen passenden Wert. Dieser Wert soll nun mit vorgegebenen Werten in einer weiteren Lookuptabelle verglichen werden.

Das ganze habe ich nun für einen Frame mit einer If-Schleife gelöst.

Nun stehe ich vor der Frage wie ich die If Schleife hintereinander für alle Frames durchlaufen lassen kann.

Die Anzahl der Frames ist bekannt.

Bsp Code
Code:
if (Halskruemmung (1,1) < CUELALookup(3,1) || (Halskruemmung (1,1) > CUELALookup(3,2)));
    disp('gruen!')
elseif (Halskruemmung (1,1)< CUELALookup(3,3)) ||  (Halskruemmung (1,1)< CUELALookup(3,4))
    disp('gelb!')
else(Halskruemmung (1,1) < CUELALookup(3,5) || (Halskruemmung (1,1) > CUELALookup(3,6)));
    disp('rot!')
end


Die Zeilennummer bei der Variable Halskruemmung entspricht dem Frame.

Wie kann ich nun diese Schleife auf alle Frames anwenden?

Vielen Dank für eure Hilfe!

Markus
Private Nachricht senden Benutzer-Profile anzeigen


General_Griboz
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 66
Anmeldedatum: 05.04.17
Wohnort: ---
Version: R2016b
     Beitrag Verfasst am: 10.05.2017, 12:13     Titel:
  Antworten mit Zitat      
Wenn du weißt wie viele Frames vorhanden sind, dann setz doch eine for- Schleife um das ganze.

Code:
for kk=1:lenght(frames)
if (Halskruemmung (kk,1) < CUELALookup(3,1) || (Halskruemmung (kk,1) > CUELALookup(3,2)));
    disp('gruen!')
elseif (Halskruemmung (kk,1)< CUELALookup(3,3)) ||  (Halskruemmung (kk,1)< CUELALookup(3,4))
    disp('gelb!')
else(Halskruemmung (kk,1) < CUELALookup(3,5) || (Halskruemmung (kk,1) > CUELALookup(3,6)));
    disp('rot!')
end
end


So ungefähr könnte es aussehen, weiß leider nur nicht wie deine frames aussehen.
Private Nachricht senden Benutzer-Profile anzeigen
 
bildkuenstler
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 11.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.05.2017, 12:41     Titel:
  Antworten mit Zitat      
Hallo!

danke für deine Antwort.

Ich lese die Anzahl der Frames vorher aus und habe es mit 'n' bezeichnet

also


Code:
for kk=1:length(n)
   
if (Kopfseitneigung (kk,1) < CUELALookup(1,1) || (Kopfseitneigung (kk,1) > CUELALookup(1,2)));
    disp('gruen!')
elseif (Kopfseitneigung (kk,1)< CUELALookup(1,3)) ||  (Halstorsion (kk,1)< CUELALookup(1,4))
    disp('gelb!')
else(Kopfseitneigung (kk,1) < CUELALookup(1,5) || (Kopfseitneigung (kk,1) > CUELALookup(1,6)));
    disp('rot!')
end
end
 


passt das so?

Ich bekomme jetzt trotzdem immer nur ein Ergebnis obwohl es über 200 Frames sind.
Wo liegt mein Denkfehler?

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
General_Griboz
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 66
Anmeldedatum: 05.04.17
Wohnort: ---
Version: R2016b
     Beitrag Verfasst am: 10.05.2017, 12:50     Titel:
  Antworten mit Zitat      
Da du die Anzahl der frames vorher ausgelesen hast kannst du auch einfach

Code:


schreiben. Denn die Länge einer einfachen Zahl ist natürlich eins. Guck dir sonst ,mal die Doku an zu length .

kk ist nur die variable die immer hochgezählt wird am Ende der for Schleife und zwar solange bis n erreicht ist. Wenn Kopfseitneigung eine nx1 matrix ist, kannst du kk dafür einsetzen und er zählt jeden einzelnen Wert von Kopfseitneigung durch und macht das was du willst.
Private Nachricht senden Benutzer-Profile anzeigen
 
bildkuenstler
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 11.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.05.2017, 13:00     Titel:
  Antworten mit Zitat      
Super hat geklappt! Danke dir!
Private Nachricht senden Benutzer-Profile anzeigen
 
General_Griboz
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 66
Anmeldedatum: 05.04.17
Wohnort: ---
Version: R2016b
     Beitrag Verfasst am: 10.05.2017, 13:08     Titel:
  Antworten mit Zitat      
Sehr gut
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.