|
|
Vektror zerlegen/ in Teilvektoren aufspalten |
|
emmyriza |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 08.12.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.01.2017, 20:20
Titel: Vektror zerlegen/ in Teilvektoren aufspalten
|
|
Hallo, ich habe eine Frage.Zwar habe einen langen Vektor, der vielen gleichen Elementen enthält. Nun wollte dass der vektoren in mehreren Vektoren aufgeteilt wird.
jeder teilvektor enthält die Elementen die gleich sind.
ein Bsp:
V =[1 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5]
Die Teilvektoren sollen so aussehen
v1 = 1 1 1 1 1;
v2 =2 2 2 2 2 2 2 2 2
v3=3 3 3 3 3 3 3
v4= 4 4 4 4 4 4 4
....
kann man anhand von indizen machen. oder eine For schleife?
ich kriege es hin nicht!
kann mir jemand eine Idee geben. Ein Code wäre auch sehr wünschenwert!
Danke !
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 14.01.2017, 20:45
Titel: Re: Vektror zerlegen/ in Teilvektoren aufspalten
|
|
|
|
|
Hallo emmyriza,
Es ist immer hilfreich für eine Antwort, wenn Du postest, was du bisgher versucht hast. Erstens ist es leichter Code zu verbessern, als ihn neu zu schreiben. Zweitens wird klarer, was Du erreichen willst. Und drittens kommt nicht der Eindruck auf, Du habest vielleicht einfach nur keine Lust gehabt, das Problem selbst zu lösen.
"v1", "v2", ... ist grundsätzlich eine schlechte Idee: Dabei werden Indizes in den Namen der Variablen versteckt. Das geht zwar per
eval
, aber das wirklich zu tun ist ein typischer Anfängerfehler. Deshalb wurde das hunderte Male hier im Forum diskutiert.
Besser wäre es, einen Index als Index zu verwenden, indem Du ein Cell-Array erstellst. Die Frage bleibt aber, wozu das nützlich ist, denn die Vektoren enthalten ja immer nur die gleichen Elemente. Dann wäre es doch effizienter, einfach nur ein Element zu speichern und die Anzahl die Wiederholungen. Das würde
histcounts
tun oder auch https://www.mathworks.com/matlabcen.....eexchange/41813-runlength.
Der Vollständigkeit halber aber mal ein Ansatz für einzelne Vektoren:
Gruß, Jan
|
|
|
emmyriza |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 08.12.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.01.2017, 11:30
Titel:
|
|
Hallo Jan vielen Dank für die Antwort.
Eigentlich habe nur das gefragt weil ich ein Datensatz mit so viele Elementen.
Konkret habe 2 Eingänge als Ströme an die Maschine angelegt und einmal halte ein Wert Konstant bei einem Eingang und am andern Eingang änder.
Z.B
Werte am Eingang 1:
V_eingang1=[1 ,2, 3, 4 ,5]
Werte am Eingang 2:
V-eingan2= [1 2 3 4 5];
als ergebnis kommt so aus
V = [1 1;1 2;1 3;1 4;1 5];
daher entsteht diese Wiederholung.
Nun habe ein vektor V, den ich aufteilen soll. ich schneide die Bereich bei einem konstanten Wert. Die länge der Element pro konstanter Wert habe zum Glück hinbekommen und den Code von Harald verwendet:
es hat funktioniert!
Danke Dir nochmal
|
|
|
|
|
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.
|
|