|
|
Vektor an Werten ungleich 1 schneiden |
|
lambda |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 14.04.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.04.2015, 11:22
Titel: Vektor an Werten ungleich 1 schneiden
|
 |
Hallo, ich bin leicht am Verzweifeln bei einem Matlab-Problem. Ich hoffe mir kann jemand helfen.
Ich habe eine Frage zum Aufteilen eines Vekors in mehrere kleinere Vektoren unterschiedlicher Länge.
Und zwar soll ein Vektor jeweils an den Stellen, die ungleich 1 sind getrennt werden und in jeweils neue kleinere Vektoren, die NUR aus 1 bestehen, geschrieben werden.
Die Zahlen ungleich 1 sind also nur die Trennstellen und sollen nicht in den kleineren Vektoren drinstehen.
Also Bsp:
A= [1 1 1 4 1 1 3 1 1 1 1]
soll in die drei Vektoren
z1= [1 1 1]
z2=[1 1]
z3=[1 1 1 1]
zerteilt werden.
Wichtig ist außerdem, dass das ganze allgemein für einen Vektor beliebiger Länge funktionieren soll. Die 1en sind dabei immer nur durch eine einzige Zahl ungleich 1 getrennt.
Ich hoffe sehr mir kann hierbei jemand weiterhelfen.
Grüße
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 14.04.2015, 12:03
Titel:
|
 |
was hast du denn bis jetzt versucht? mit einer forschleife ist das sehr leicht umzusetzen. wenn man das noch mit find kombiniert geht das relativ fix.
du solltest allerdings nicht einen index im variablen namen verstecken. ein cell array wäre hier einfacher zu verwenden.
grüße
_________________
richtig Fragen
|
|
|
lambda |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 14.04.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.04.2015, 12:56
Titel:
|
 |
Danke schonmal für die Antwort. Die Idee mit dem find habe ich auch. Mir ist allerdings durch meine geringe Matlab-Kenntnis nicht genau klar, wie ich diese verschiedenen Vektoren dann erstelle...
|
|
|
lambda |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 14.04.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.04.2015, 14:02
Titel:
|
 |
kann mir vielleicht jemand zu dem Thema helfen. Ich weiß nicht genau wie das mit einer for-Schleife oder auch anders hinbekomme.
Danke schonmal. :)
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 14.04.2015, 14:13
Titel:
|
 |
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 16.04.2015, 13:58
Titel: Re: Vektor an Werten ungleich 1 schneiden
|
 |
Hallo lambda,
z1, z2, z3 als Ausgabe ist extrem unpraktisch. Hier wird ja ein Index im Namen der Variablen "versteckt" und es ist sehr mühselig später wieder darauf zuzugreifen. Ein Cell-Array ist besser.
Ein Cell-Array, das nur Vektoren enthält, deren Elemente alle 1 sind, ist allerdings eine merkwürdige Art Daten zu speichern. Den gleichen Inhalt hätte man auch mit einem Vektor, der die Länge die einzelnen Vektoren enthielte. Diese liesse sich auch sehr einfach programmieren:
Was soll geschehen, wenn eine Nicht-1 als erstes oder letztes Element auftaucht?
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.
|
|