|
entenhausen |

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 06.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 09:58
Titel: Matrix aufteilen
|
 |
Hallo zusammen,
ich habe folgendes Problem:
ich habe zwei große Vektoren x und y mit jeweils 593 Einträgen. Nun möchte ich diese Vektoren in 5 Teile aufteilen und die Werte Variablen zuordnen. Dabei ist es wichtig, dass die Werte nicht verrutschen, sprich am Ende möchte ich z.B. einen Vektor wie folgt haben:
x1 y1
x2 y2
Var1= ...
x100 y100
Und das halt 5 mal.
Kann mir einer vielleicht helfen?
Ich hatte es zuerst mit der Funktion deal versucht, aber die weist den Variablen ja alle Werte aus der Ursprungsmatrix zu und teilt sie nicht auf.
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 12:03
Titel:
|
 |
bei so wenigen elemten sollte eine forschleife das schnell und effizient erledigen.
_________________
richtig Fragen
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 12:05
Titel: Re: Matrix aufteilen
|
 |
Hallo entenhausen,
Die Frage ist noch nicht klar. Statt die vorhandenen Inputs zu beschreiben, ist ein Beispiel in valider Matlab-Syntax immer besser nachzuvollziehen. Z.B.:
Passt das?
Was wäre denn ein "Verrutschen" der Werte?
Zitat: |
...am Ende möchte ich z.B. einen Vektor wie folgt haben:
x1 y1
x2 y2
Var1= ...
x100 y100 |
Das sagt mir nichts. Woher stammt nun "x1", "y1" etc?
Vielleicht meinst Du etwas wie:
Gruß, Jan
|
|
|
entenhausen |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 06.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 12:14
Titel:
|
 |
Mit dem Verrutschen meine ich folgendes: Ich will ja am Ende 5 Matrizen bzw. Vektoren haben. Die beiden Anfangsvektoren sind x und y. Wichtig ist halt, dass die Werte in den Zeilen nicht verrutschen, d.h. dass der erste Wert von Vektor x nach dem Aufteilen auch der erste Wert bleibt. Gleiches Gilt für Vektor y.
Vektor x und y stehen im Zusammenhang zueinander und die Werte müssen halt gleich bleiben. Ich will halt einfach den großen Vektor (593x2) in 5 kleinere aufteilen, die jeweils auch zwei Spalten haben.
Ich hoffe es ist jetzt verständlicher, was ich meine.
LG
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 13:17
Titel:
|
 |
Hallo entenhausen,
Wenn ich es richtig verstehe, wäre es recht kompliziert ein "Verrutschen" zu bewerkstelligen, so dass dieses Detail eher verwirrt als zur Lösung beiträgt.
So weit ich es verstehem löst mein Code Dein Problem also bereits. Du hast nun noch die Information gegeben, dass die 593 Elemente in einer Spalte orientiert sind, während ich von einer Zeile ausging. Aber das ist leicht anzupassen.
Ist die Frage damit gelöst?
Gruß, Jan
|
|
|
entenhausen |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 06.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 13:26
Titel:
|
 |
Vielleicht nochmal zur Verdeutlichung
wenn ich z.B. folgende Matrix habe:
2 4
6 1
8 9
3 2
5 4
Ich möchte diese Matrix dann einfach aufteilen, wie folgt:
1) 2 4
6 1
8 9
2) 3 2
5 4
Bei mir handelt es sich halt um eine 593x2-Matrix und ich möchte diese in 5 Teile aufsplitten, wo sich die Reihenfolge der Werte aber nicht ändern soll.
Ich hab das so versucht:
Das geht aber nicht, da den Variablen a-e nur die Werte der ersten Spalte von A zugewiesen werden.
Vielen Dank im Voraus und LG
|
|
|
entenhausen |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 06.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 13:28
Titel:
|
 |
Jan S hat Folgendes geschrieben: |
Hallo entenhausen,
Wenn ich es richtig verstehe, wäre es recht kompliziert ein "Verrutschen" zu bewerkstelligen, so dass dieses Detail eher verwirrt als zur Lösung beiträgt.
So weit ich es verstehem löst mein Code Dein Problem also bereits. Du hast nun noch die Information gegeben, dass die 593 Elemente in einer Spalte orientiert sind, während ich von einer Zeile ausging. Aber das ist leicht anzupassen.
Ist die Frage damit gelöst?
Gruß, Jan |
Oh, hatte nicht gesehen, dass du bereits geantwortet hattest. Ehrlich gesagt kann ich deinen Code noch nicht ganz nachvollziehen.
was genau meinst du hiermit?
Ich konnte das noch nicht übertragen.
LG
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 13:39
Titel:
|
 |
das ist die unterteilung in abschnitte der länge 100 und das speichern dieser abschnitte in der cell C. wenn die vektoren nicht immer gleich lang sein sollen dann dann musst das das umschreiben.
_________________
richtig Fragen
|
|
|
Andy386 |

Forum-Guru
|
 |
Beiträge: 485
|
 |
|
 |
Anmeldedatum: 24.06.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.1/8
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 13:53
Titel:
|
 |
entenhausen hat Folgendes geschrieben: |
Das geht aber nicht... |
... natürlich geht das! Wo sitzt da nur der Fehler?
probier mal
lg
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
|
|
|
entenhausen |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 06.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 14:42
Titel:
|
 |
aaah selbstverständlich, jetzt klappt das! Vielen Dank!
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 11.09.2013, 16:07
Titel:
|
 |
Hallo entenhausen,
Du hast noch nicht eindeutig erklärt, wie groß die einzelnen Abschnitte sein sollen. Aus dem in der ertsen Nachricht auftauchenden "x100, y100" habe ich geraten, dass Du Blöcke mit 100 Elementen bekommen möchtest.
Zur Bedeutung von:
Probiere es doch einfach mal aus. Kopiere den Code in ein M-File und setze einen Breakpoint in diese Zeile. Dann starte die Funktion. Wenn Matlab beim Breakpoint anhält, gib die einzel-Teile des Befehls im Command Window ein:
Zum Schluß wird das in das k.te Cell-Element von C geschrieben.
Matlab ist nicht einfach, aber man kann es in so kleine Stückchen zerlegen, dass jeder einzelne Schritt fast trivial ist.
Das Problem ist immer noch nicht klar definiert. Ich schlage vor, Du versuchst es noch einmal so präzise wie möglich aufzuschrieben. Denn eine ganz exakte Definition ist bereits eine zu 98% fertige Implementierung in einer Programmiersprache.
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.
|
|