|
|
Argumente zählen und anhand der Anzahl verarbeiten |
|
proth95 |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 18.10.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.10.2018, 16:31
Titel: Argumente zählen und anhand der Anzahl verarbeiten
|
 |
|
 |
|
Hallo,
ich stehe in Matlab vor einem Problem. Ich hab eine Matrix von Messwerten. In einigen Spalten befinden sich Zustände in der sich die Maschine befinden kann immer in Form von 0= Aus und 1= An. Ich suche nun eine Möglichkeit diese Zustandsspalten zu durchsuchen und die 1er zu zählen, immer wenn nicht mehr als 1500 einser hintereinander kommen möchte ich diese Zeilen (bis zu 1499) löschen.
Leider sind meine Programmierkenntnisse in Matlab noch sehr beschränkt, daher die Frage. Zur Frage ist noch zu sagen es handelt sich nicht um eine Hausaufgabe meiner Uni.
Mein bisheriger Lösungsansatz ging über den find Befehl allerdings verliere ich so eine exakte zuordnung der Messwerte zu meinem Original Zeitmitschrieb.
Vom Prinzip her bräuchte ich eine Funktion die die Spalten zeilenweise durchgeht gleiche Argumente zählt und sobald das Argument wechselt also von 0 auf 1 oder umgkehrt wieder von Vorne beginnt zu zählen und falls die bisher gezählten Argumente weniger als 1499 die betreffenden Zeilen löscht.
Danke für eure Antworten und Lösungsideen
Gruß
Peter
|
|
|
|
|
proth95 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 18.10.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.10.2018, 21:46
Titel:
|
 |
Ich habe leider keinen editieren Button gefunden um meinen Versuche der Umsetzung zu ergänzen.
DATA ist meine Matrix in Spalte 9 soll nach den 1en gesucht werden und wenn 1499 oder eniger aufeinander folgende gefunden wurden soll in Spalte 220 eine 1 in alle betreffenden Zellen geschrieben werden. Dies funnkioniert leider nicht wie erhofft.
Für Tips bin ich dankbar!
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 25.10.2018, 10:07
Titel:
|
 |
hallo proth95,
"length(DATA(:,9))" erzeugt zuerst den Vektor DATA(:,9), nur um die Länge zu bestimmen und ihn dann wieder zu löschen. Effizienter: "size(DATA, 1)".
Zitat: |
DATA ist meine Matrix in Spalte 9 soll nach den 1en gesucht werden und wenn 1499 oder eniger aufeinander folgende gefunden wurden soll in Spalte 220 eine 1 in alle betreffenden Zellen geschrieben werden. |
Das verstehe ich noch nicht.
Das Abzählen gleicher aufeinanderfolgender Werte ist ein Run-Length-Problem. Siehe dazu https://www.mathworks.com/matlabcen.....eexchange/41813-runlength. Falls Du keinen C-Compiler installiert hast, nimm "RunLength_M" statt "RunLength" aus diesem Download. Dann:
Das sind z.B. die Indices, bei denen ein Lauf von mindestens 1500 gleichen Werten beginnt. Hilft das bereits weiter?
Gruß, Jan
|
|
|
|
|
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.
|