|
|
Intervalllänge von einsen |
|
lilov |

Forum-Century
|
 |
Beiträge: 193
|
 |
|
 |
Anmeldedatum: 05.05.10
|
 |
|
 |
Wohnort: Bremerhaven
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.05.2011, 10:37
Titel: Intervalllänge von einsen
|
 |
Hallo,
ich habe eine Matrix die so ähnlich aussieht:
Vllt kennt jemand von euch einen Befehl, der die Intervalllängen abzählt. Das Ergebnis sollte so aussehen:
Ich möchte das Ganze ohne Schleifen durchführen da meine Matrizen ziemlich groß sind. Danke im Voraus!
Gruß,
Hristo
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 09.05.2011, 15:48
Titel: Re: Intervalllänge von einsen
|
 |
Hallo lilov,
Sind die Nullen einzeln, oder treten die auch in Gruppen auf?
Hinweis: "find(A == 0)", "findstr(A, [0,1])"...
Gruß, Jan
|
|
|
lilov |
Themenstarter

Forum-Century
|
 |
Beiträge: 193
|
 |
|
 |
Anmeldedatum: 05.05.10
|
 |
|
 |
Wohnort: Bremerhaven
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.05.2011, 08:58
Titel:
|
 |
Hi Jan,
danke für dein Antwort. Sie treten auch gruppenweise auf....ich hab es auf Umwege durch diff usw gelöst..nur ich hatte gehofft dass es auch eine elegante Lösung gibt...
Gruß,
lilov
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 10.05.2011, 23:45
Titel:
|
 |
Hallo lilov,
Vielleicht gibt es eine elegantere Lösung. Möchtest Du denn Deine mal posten? DIFF, CUMSUM und STRFIND sind wahrscheinlich gute Helfer bei solchen Indizierungen.
Gruß, Jan
|
|
|
lilov |
Themenstarter

Forum-Century
|
 |
Beiträge: 193
|
 |
|
 |
Anmeldedatum: 05.05.10
|
 |
|
 |
Wohnort: Bremerhaven
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.05.2011, 09:41
Titel:
|
 |
Hi Jan,
danke erstmal für deine schnelle Antwort!Hier ist meine bisherige Lösung:
Gruß,
lilov
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 11.05.2011, 12:15
Titel:
|
 |
Hallo lilov,
Ich habe es etwas beschleunigen können:
FIND(DIFF) wird dadurch langsamer, dass DIFF erstmal einen neuen Vektor erzeugen muss, während STRFIND nur die gefundenen Indices zurückgeben muss. Während die eigentlichen Berechnungen im Prozessor sehr schnell bearbeitet werden, ist das Allozieren von Speicher für temporäre Vektoren ein Flaschenhals.
Der zweite Trick war das vermeiden der Schleife, indem die Längen Len mal positiv und mal negativ in einen Vektor aus Nullen geschrieben werden. CUMSUM bastelt dann die Gewünschte Ausgabe sehr schnell, gerade wenn der Input-Vektor etwas größer ist, z.B. 200.000 Elemente...
Gruß, Jan
|
|
|
lilov |
Themenstarter

Forum-Century
|
 |
Beiträge: 193
|
 |
|
 |
Anmeldedatum: 05.05.10
|
 |
|
 |
Wohnort: Bremerhaven
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.05.2011, 19:11
Titel:
|
 |
funktioniert super!!! danke Jan!
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 11.05.2011, 21:07
Titel:
|
 |
Hallo lilov,
Gerne! "Elegant" sieht das allerdings nicht aus... Aber die Geschwindigkeit ist gut!
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.
|
|