|
|
Bestimmte Abfolge von Werten finden |
|
TH123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.02.2013, 16:46
Titel: Bestimmte Abfolge von Werten finden
|
 |
Hallo zusammen,
ich bin am verzweifeln und hoffe mir kann jemand helfen.
Folgendes Problem:
Ich will aus einem Vektor ('RPM') eine bestimmte Abfolge von Werten finden. Die Abfolge besteht aus folgender Reihenfolge:
1. Werten zwischen 680 und 720
2. Werten zwischen 1450 und 1550
3. Werte zwischen 680 und 720
Jeder der genannten Bereiche muss mindestens 10 Werte (ununterbrochen) aufweisen. Erst dann ist es ok, wenn der nächste Bereich beginnt. Ist dies bei allen 3 Bereichen erfüllt, soll ein Zähler inkrementiert werden.
Folgenden Code habe ich bisher:
Vielen Dank für deine Hilfe!!
Grüße TH123
|
|
|
|
|
Seban |

Forum-Meister
|
 |
Beiträge: 600
|
 |
|
 |
Anmeldedatum: 19.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab R2014b
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 01:25
Titel:
|
 |
Hallo,
Das finde ich noch nicht exakt beschrieben.
Was heißt ununterbrochen? Das?
oder auch das
?
Was ist, wenn 10 Werte Bedingung 1 erfüllen, dann beliebige andere Werte vorliegen, anschließend wieder 3 Werte, die Bedingung 1 erfüllen? Kontrolliert man dann auf Bedingung 2 & 3 oder fängt man wieder bei Bedingung 1 an, bis min. 10 Werte diese erfüllen?
Müssen die Bereiche, die die einzelnen Bedingungen zusammenhängen oder können da andere Werte zwischen liegen?
...?
Statt mit for-Schleifen, würde ich logische Vektoren als Ansatz wählen.
Wie man damit ans Ziel kommt, hängt von obigen Fragen ab.
Man könnte auch einen Vektor mit Einsen für Bereich 1&3 und Zweien für Bereich 2 erstellen und prüfen, ob die "Min-10-Bedingungen" erfüllt sind:
Deine Bedingungen sind übrigens im Code und in der Beschreibung nicht identisch.
Grüße,
Seban
|
|
|
TH123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 09:17
Titel:
|
 |
Hallo Seban,
danke für die schnelle Antwort.
Mit ununterbrochen meine ich folgendes:
mindestens 10 Werte von Bereich 1
direkt gefolgt von
mindestens 10 Werte von Bereich 2
direkt gefolgt von
mindestens 10 Werte von Bereich 3
d.h.: Diese Abfolge der 3 Bereiche muss "am Stück" passieren, ansonsten fange ich wieder bei Bereich 1 an!!
Das stimmt, danke! Die Bedingungen habe ich falsch eingefügt. Es gelten die im Code:
1.Werten zwischen 720 und 780
2. Werten zwischen 1450 und 1550
3. Werte zwischen 720 und 780
Grüße,
TH
|
|
|
Seban |

Forum-Meister
|
 |
Beiträge: 600
|
 |
|
 |
Anmeldedatum: 19.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab R2014b
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 19:50
Titel:
|
 |
Hallo,
Ich hab oben genannten Ansatz etwas erweitert, er funktioniert aber noch nicht für alle Fälle (Bsp. auskommentierter Vektor RPM).
Vor dem Zählen müssen falsche Indizes noch entfernt werden, bspw. in start_1, ende_1, start_2 je der zweite Wert.
(Ich hab die Bedingungen der Einfachheit halber verkürzt.)
Am einfachsten wäre natürlich, wenn man in strfind (oder einer anderen Funktion) etwas in der Form
verwenden könnte. Dann wäre zaehler einfach gleich length(index).
Vielleicht kennt ja jemand so eine Funktion?
MfG
|
|
|
TH123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.02.2013, 10:48
Titel:
|
 |
Vielen vielen Dank für deine Hilfe !! Damit komme ich super zurecht!!!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|