|
|
Wertesprünge in Vektor zählen |
|
Buhmann |

Forum-Anfänger
|
 |
Beiträge: 30
|
 |
|
 |
Anmeldedatum: 25.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 15.02.2012, 13:33
Titel: Wertesprünge in Vektor zählen
|
 |
Hallo zusammen!
Kurze Frage:
Ich habe einen langen, binären Vektor und will nun zählen, wie viele zusammenhängende 1er-Blöcke es zwischen den ganzen Nullen gibt.
Da gibt es doch bestimmt eine elegantere Methode, als alle Elemente durchzugehen und mitzuzählen oder?
Ciao
Christian
EDIT:
Hat sich erledigt, hab die Lösung schon gefunden:
Man kann bwlabel natürlich nicht nur auf Matrizen, sondern auch auf einzeilige Matrizen, sprich Vektoren anwenden
(max(bwlabel(vektor)) liefert dann die Anzahl der Blöcke in vektor)
|
|
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 15.02.2012, 13:40
Titel:
|
 |
|
|
Buhmann |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 30
|
 |
|
 |
Anmeldedatum: 25.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 20.02.2012, 11:47
Titel:
|
 |
Aha, interessant, darauf wäre ich nicht gekommen.
Damit würde man auch gleichzeitig die Länge der Blöcke ermitteln.
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 20.02.2012, 12:06
Titel:
|
 |
Buhmann hat Folgendes geschrieben: |
Aha, interessant, darauf wäre ich nicht gekommen.
Damit würde man auch gleichzeitig die Länge der Blöcke ermitteln. |
Ja damit kann man die Länge einzelner Blöcke ermitteln
|
|
|
testuser |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.07.2012, 12:53
Titel:
|
 |
Hallo,
ich habe ein ähnliches Problem und wollte hier gern anknüpfen.
Ich habe einen monoton steigenden Zeitvektor der jedoch nur einzelne zusammenhängende Blöcke enthält.
Bsp.:
Ich brauche die Länge bzw. den Zeitlichen Abstands der Blöcke bzw. des längsten Blocks. Hat jemand eine Idee?
MfG
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 06.07.2012, 14:21
Titel:
|
 |
Hallo,
Dann wende zuerst (DIFF(time) == 1) an. Danach sollten die oben genannten Methoden helpfen.
Gruß, Jan
|
|
|
Annagoesmatlab |

Forum-Anfänger
|
 |
Beiträge: 48
|
 |
|
 |
Anmeldedatum: 04.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2015b
|
 |
|
|
 |
|
Verfasst am: 27.02.2014, 15:01
Titel:
|
 |
Hallo,
ich würde auch gerne die länge meines größten zusammenhängenden werteblocks aus meinem Vektor mit 8760 werten wissen. Also habe ich erst
angewendet, damit mein vektor nur noch aus 0 und 1 besteht, aber bei dem Befehl
kommt die Fehlermeldung: CAT arguments dimensions are not consistent.
Habt ihr eine Idee woran das liegen könnte?
LG
Anna
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 27.02.2014, 15:56
Titel:
|
 |
Hallo Anna,
vermutlich ist dein Vektor A ein Spaltenvektor. Der Code ist allerdings für einen Zeilenvektor geschrieben. Du müsstest deinen Vektor A also vorher zu einem Zeilenvektor transponieren.
Viele Grüße,
Nras.
|
|
|
Annagoesmatlab |

Forum-Anfänger
|
 |
Beiträge: 48
|
 |
|
 |
Anmeldedatum: 04.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2015b
|
 |
|
|
 |
|
Verfasst am: 27.02.2014, 16:25
Titel:
|
 |
Ah ja danke.
Aber jetzt hab ich noch ein Problem. Denn durch den Befehl bekomm ich ja nur die Anzahl meiner Blöcke wieder und nicht wie viele Werte mein längster Block hat.
Also die größte Anzahl der Werte die zwischen den Nullen vorkommen.
Wie könnte ich diese Anzahl der Werte denn jetzt noch raus bekommen?
Lg
Anna
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 27.02.2014, 16:54
Titel:
|
 |
Hallo,
die Länge der einzelnen Blöcke kriegst du mit
Die Länge des längsten Blocks somit mit
.
Falls dir das mit dem strfind nicht zusagt: zu dem Thema weist Jan auch regelmäßig auf sein Beispiel auf dem Fileexchange hin:
http://www.mathworks.com/matlabcent.....gth/content/RunLength_M.m
Für dich besonders interessant wären die Zeilen unter dem ersten "if vectorized". Allerdings zählt dies natürlich auch die Länge der Nuller-Blöcke.
Viele Grüße,
Nras.
|
|
|
|
|
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.
|
|