|
|
Bereichsauswahl mit Bedingung |
|
Amun@Ra |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 29.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.07.2016, 14:11
Titel: Bereichsauswahl mit Bedingung
|
|
|
|
|
Moin,
dies ist mein erster Beitrag im Forum. Ich hoffe keine Verhaltensregeln zu missachten.
Ich bin etwas verwirrt bzgl. einer Matlab-funktion die ich zur Auswertung meiner Zeitreihen verwende.
Und zwar möchte ich aus meiner Matrix "Werte" (499680x3 double) diejenigen Zeilen auswählen, welche meinem Kriterium entsprechen:
Wenn ich dieses Command ausführe, erhalte ich in A alle Werte die -999 entsprechen. Wenn ich den bereich auf 40000:50000 verringere, funktioniert die Auswahl nicht mehr und ich erhalte eine Liste von Messwerten die ich (derzeit) nicht zuordnen kann und die auch nicht mehr dem Kriterium entsprechen:
letztlich sieht mein code derzeit wie nachfolgend aus, ich möchte ein laufendes Jahresmittel erzeugen:
Kann mir jemand sagen was ich bei der Auswahl falsch mache?
Ich möchte abhängig von e immer das Mittel eines Zeilenbereichs ermitteln, jedoch ohne dabei Fehlerwerte mit einzubeziehen.
Damit wäre mir sehr geholfen
VG
Amun
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.07.2016, 14:23
Titel:
|
|
Hallo,
das Problem dürfte die Index-Verschiebung sein.
Grüße,
Harald
|
|
|
Amun@Ra |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 29.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.07.2016, 14:46
Titel:
|
|
Danke Harald, das wäre eine Lösung.
Ich würde aber zusätzlich gerne verstehen wieso Matlab damit ein Problem hat. Wenn ich den Bereich Werte(30000:40000, abfrage, dann klappt noch alles wie gehabt. erst über 40000 gibts Probleme...Liegt das an meiner Zeitreihe oder dem Indexbereich an sich?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.07.2016, 15:14
Titel:
|
|
|
|
|
Hallo,
Zitat: |
Wenn ich den Bereich Werte(30000:40000,:) abfrage, dann klappt noch alles wie gehabt. |
Das kann eigentlich nur ein glücklicher Zufall sein.
Der Codeteil
Werte(40000:50000,1)==-999
erstellt einen logischen Vektor mit 10001 Elementen.
1. Element: ist die Bedingung an der Stelle 40000 erfüllt
2. Element: ist die Bedingung an der Stelle 40001 erfüllt
...
Wenn du das nun als Index verwendest, geht die 40000-Information verloren, d.h.
1. Element: bestimmt, ob das 1. Element ausgewählt wird (und nicht das 40000.)
2. Element: bestimmt, ob das 2. Element ausgewählt wird (und nicht das 40001.)
...
Ich würde bei Problemen den Index-Vektor immer in einem separaten Schritt erstellen und darauf achten, ob er genauso lang ist wie die Anzahl der Elemente / Zeilen (hier) / Spalten der Variable, in die indiziert werden soll. Wenn das nicht der Fall ist, muss man sehr aufpassen, dass es nicht wie hier zu einer unbeabsichtigten Interpretation der Indizes kommt.
Grüße,
Harald
|
|
|
Amun@Ra |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 29.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.08.2016, 09:39
Titel:
|
|
|
|
|
|
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 - 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.
|
|