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

Werte finden und anschließend in selber Spalte weiter suche

 

peter159

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2015, 16:41     Titel: Werte finden und anschließend in selber Spalte weiter suche
  Antworten mit Zitat      
Hallo zusammen,

mein Problem lautet wie folgt:
Meine Matrix besitzt eine Spalte und in dieser stehen die Werte von 1-4. Im normalfall stehen diese Zahlen dort in genau dieser Reihenfolge also (1,2,3,4,1,2,3,4,1,2,3,4).
Meine Aufgabe ist die 1en zu finden und die darauf folgenden 3en.
Nun ist es so, dass Fehler auftreten können und bspw folgendes dort steht (1,2,2,2,3,4,1,3,1,2,1,3).
Ich muss nun zunächst die 1 finden (
Code:
Matrix(t)==1
) und die darauf folgende 3 (hier liegt das Problem!!!)
Im normalfall steht zwischen der 1 und der 3 eine 2 (Reihenfolge wurde eingehalten). Diese 2 kann auch mehrfach dort stehen.(erstes Problem)
Es ist auch möglich, dass die 2 übersprungen wurde. (zweites Problem)
Ebenfalls möglich ist, dass die 3 übersprungen wurde und eine weitere 1 folgt. In diesem Fall soll die "erste" 1 nicht weiter betrachtet werden und die Suche ab der "neuen" 1 fortgesetzt werden. (drittes Problem)


Ich habe in einer weiteren Matrix die dazu gehörige Zeiten und Positionen gespeichert und benötige demnach die Zeilen. Die Variable t ist dabei die Laufvariable.

Besten Dank schonmal!


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 27.07.2015, 16:48     Titel:
  Antworten mit Zitat      
was hast du denn bis jetzt versucht? und was hat nicht geklappt ?
mit find kannst du ja die positionen suchen. danach könntest du ja einfach mti einer for schleife alle einser indexe durchlaufen und gucken ob danach ein 3.er index kommt oder vorher noch ein einer index. bei letzterem halt überspringen. sonst das paar übernehmen.
wäre jedenfalls erstmal meine herangehensweise.
_________________

richtig Fragen
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: 27.07.2015, 16:51     Titel: Re: Werte finden und anschließend in selber Spalte weiter s
  Antworten mit Zitat      
Hallo peter159,

Zitat:
Ich habe in einer weiteren Matrix die dazu gehörige Zeiten und Positionen gespeichert und benötige demnach die Zeilen. Die Variable t ist dabei die Laufvariable.

Dieser satz verwirrt mich grundlegend. Weitere Matrix? Zeiten? Positionen? Welche Zeilen? Laufvariable?

Eigentlich erschien das Problem einfach, bis zu diesem Satz.
Code:
x = [1,2,2,2,3,4,1,3,1,2,1,3];
index1 = find(x==1 | x==3);
y = x(index1);
index2 = strfind(y, [1,3]);
result_1 = index1(index2);
result_3 = index1(index2+1);

Trifft das Dein Problem?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
peter159

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2015, 16:00     Titel:
  Antworten mit Zitat      
Danke Jan!

kannte die strfind funktion nicht. daran ists im endeffekt gescheitert!

Besten Dank nochmal an alle!
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.07.2015, 16:54     Titel: Re: Werte finden und anschließend in selber Spalte weiter s
  Antworten mit Zitat      
Hallo peter159,

Statt mit strfind wäre es auch so gegangen:
Code:
% Statt: index2 = strfind(y, [1,3]);
index2 = find(y(1:end-1) == 1 & y(2:end) == 3);

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 - 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.