|
|
Bereich mit vorgegebener Differenz aus Vektor auslesen |
|
Barny |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.04.2013, 14:38
Titel: Bereich mit vorgegebener Differenz aus Vektor auslesen
|
 |
|
 |
|
Hallo Leute,
ich arbeite erst sehr kurz mit matlab und habe daher kaum Erfahrungen damit.
Folgendes möchte ich umsetzen:
Bei meinem Projekt geht es um Messdaten eines Fahrzeugs bezüglich der Querbeschleunigung. Das Einlesen der Daten stellt kein Problem dar, allerdings möchte ich nur einen Teil der vorhandenen Daten weiterverwenden. Ich möchte aus einem Vektor mit beliebig vielen Messwerten nur jene auslesen die sich über eine gewisse vorgegebene Vektorlänge, z.B. 200 Stellen, nur um eine gewisse Differenz ändern.
Mal ein Beispiel:
ay=[ 3 3.8 2.3 2.4 2.1 2.9 3.3 3.2 2.1 2.2 ]
Aus diesem vektor würde ich jetzt gerne die Werte auslesen die auf einer Länge von 3 (nicht wie bei mir später 200) zusammenhängenden Werten eine maximale Differenz von 0.3 aufweisen. In diesem Fall wären das die 3 Werte 2.3 2.4 2.1.. Diese 3 Werte sollen dann in einem anderen vektor gespeichert werden.
Falls dies in dem langen Vektor mehrfach vorkommt sollen diese Werte ebenfalls gespeichert werden aber nicht die vorher gefundenen überschreiben.
Ich hoffe es ist klar geworden was ich meine und es kann mir einer helfen.
Danke schön schonmal!
Gruß Barny
|
|
|
|
|
Barny |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.04.2013, 08:56
Titel:
|
 |
Guten morgen,
ich hab mich jetzt längere Zeit mit meinem Problem beschäftigt aber keine wirkliche Lösung gefunden. Ich habe es hinbekommen einen bestimmten Bereich in meinem Vektor zu suchen und auch auszulesen.
Nur habe ich leider keine Idee wie Matlab einen Bereich finden kann, der ähnliche (Angabe der max. Differenz), zusammenhängende Werte enthält ohne vorher einen Bereich zu definieren.
Fällt hier auch keinem was ein? Bin über jede Idee dankbar.
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 19.04.2013, 11:08
Titel:
|
 |
Hallo,
ein guter Anfang ist sicher, die Differenzen zweier aufeinanderfolgender Werte in deinem Vektor zu bilden. Das geht mit diff().
Dann wäre es vielleicht gut, wenn du die Stellen raussuchst, an denen die Differenz (vielleicht willst Du in Wirklichkeit aber den Absolutwert der Differenz) kleiner gleich deiner vorgegebenen Maximaldifferenz von 0.3 ist.
Nun musst Du noch etwas überlegen, wie Du die beiden Werte bekommst, bei denen die Differenz kleiner gleich 0.3 ist - und das an zwei aufeinanderfolgenden Stellen.
Ein Ansatz könnte so aussehen:
Das ist aber noch nicht die ganze Wahrheit - prüfe, was Du rauskriegst, wenn Du ay(ind) ausgibst. Du willst mindestens 3 zusammenhängende Werte, daher brauchst du im logischen Vektor zwei aufeinanderfolgende einsen, bzw. im ind Vektor zwei aufeinanderfolgende Indizes.
Hilft dir das zunächst?
|
|
|
Barny |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.04.2013, 09:08
Titel:
|
 |
Hallo Nras,
vielen Dank für deine Antwort. Ich kam erst eben dazu mich damit zu beschäftigen, da ich nur an meinem Arbeitsplatz einen Zugang zu Matlab habe.
Ich habe deine Idee genutzt und mir anschließend mithilfe eines anderen Forumbeitrages die Anfangs- und Endindizes der Reihen mit zusammenhängenden Einsen ausgelesen.
Damit müsste ich erstmal ein ganzes Stück weiter kommen.
Danke und Gruß
Barny
|
|
|
|
|
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.
|
|