|
|
Skalar-Variablen aus Vektor auslesen |
|
tom24 |

Forum-Anfänger
|
 |
Beiträge: 23
|
 |
|
 |
Anmeldedatum: 29.09.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2008, 20:28
Titel: Skalar-Variablen aus Vektor auslesen
|
 |
Hallo Leute,
vielleicht kann mir hier jemand helfen?
Im folgenden Fall ist x_p ein Spaltenvektor mit 3 Elementen. Seine Einträge sind Ergebnisse einer Rechnung, diese Einträge sollen nun wieder einzelnen Skalarvariablen zugewiesen werden (also der Vektor wird aufgespalten).
Wie mache ich das (für längere Vektoren) in einem Schritt, d.h. ohne jede Zuweisung einzeln hinschreiben zu müssen.
Ich habe es mit
probiert, wobei s1, s2 und s3 die zu füllenden Skalarvariablen sind.
Das klappt natürlich so nicht!
Für einen Tipp wäre ich dankbar.
Beste Grüße,
Tom
|
|
|
|
|
samsa10 |

Forum-Fortgeschrittener
|
 |
Beiträge: 50
|
 |
|
 |
Anmeldedatum: 10.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2008, 20:43
Titel:
|
 |
Hallo
nenne deine drei skalaren-Variablen doch x_p(1) , x_p(2) und x_p(3). ;)
Eigens neue Variablen anlegen ist bestimmt nicht Performance dienlich.
Schlimmsten Falls einen zweiten Vektor anlegen, mit den Einträgen von x_p und dort die einzelnen Komponenten ansprechen.
Grüße
|
|
|
tom24 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 23
|
 |
|
 |
Anmeldedatum: 29.09.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2008, 20:56
Titel:
|
 |
Hallo,
danke für deinen tipp aber so einfach geht es ja leider nicht.
du meintest
???
Dann kommt die Fehlermeldung:
??? Error: An array for multiple LHS assignment must be a vector.
als zeilenvektor geht es genauso wenig. wenn man schreibt
kommt die meldung
??? Too many output arguments.
ausserdem erspare ich es mir mit der lösung ja auch nicht, die lange rehcte seite komplett auszuschreiben (in wirklichkeit größerer vektor).
Noch einen besseren Vorschlag?
Danke und Grüsse
|
|
|
Maddy |

Ehrenmitglied
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 02.10.08
|
 |
|
 |
Wohnort: Greifswald
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2008, 22:40
Titel:
|
 |
Die Frage bleibt, warum du nicht einfach die einzelnen Elemente des Vektors in den weiteren Schritten nutzt und umständlich in andere Variablen umschreiben willst?
Das ganze Umschreiben könntest du in einer for-schleife machen:
_________________
>> why
The computer did it.
|
|
|
tom24 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 23
|
 |
|
 |
Anmeldedatum: 29.09.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.12.2008, 12:50
Titel:
|
 |
|
 |
|
Vielen Dank.
Deine Frage im Detail zu beantworten würde etwas zu lange dauern. Kurz gesagt brauche ich für die einzelnen Elemente des Vektors sprechende Namen, da man sonst in meiner Parameterschätzung völlig den Überblick verliert. Die Variablen heißen nämlich leider in Wirklichkeit nicht s1-sn. Ich wollte das Problem nur möglichst einfach posten, was mir scheinbar nicht so ganz gelungen ist.
Außerdem reden wir von über 50 einzelnen m-files, in den die Variablen jeweils mehrfach verwendet werden, die ich nicht alle wieder ändern will. Das Programm ist über einen Zeitraum von 2 Monaten entstanden und die Notwendigkeit für den diskutierten Rechenschritt hat sich erst nachträglich ergeben.
Meine Idee war einfach folgende: In Matlab gibts ja eine ganze Reihe von Funktionen, die mehrere Argumente zurückgeben, z.B. [V,D] = eig(A) .
Daher dachte ich sollte es einen Befehl geben, bei der in ähnlicher Notation Werte aus einem Vektor x den einzelen Skalarvariablen zugeordnet werden.
Na ja, offenbar gibt es so was doch nicht, aber werd mich schon irgendwie arrangieren...
Gruß
Tom
|
|
|
samsa10 |

Forum-Fortgeschrittener
|
 |
Beiträge: 50
|
 |
|
 |
Anmeldedatum: 10.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.12.2008, 14:45
Titel:
|
 |
Hallo,
Wenn du deine Variablen-Namen mit Nummerierung verteilst, das heißt
s1, s2, ... dann ist das doch gerade so gut wie mit x_p(1), x_p(2),... anzusprechen. Das heißt, ich gehe davon aus, du willst die Namen nicht nur nummeriert, sondern gänzlich verschieden (ansonsten könnte man ja mit den Komponenten arbeiten). Dann musst du aber ohnehin jeden Namen eigens angeben, und dann kannst du es ja gleich direkt zuweisen:
Es bleibt für mich also offen, wie sich das Problem - eine solche Zuweisung zu benötigen - überhaupt ergeben kann, da eigentlich nur die zwei oben genannten Fälle in Frage kommen...
Grüße
|
|
|
Maddy |

Ehrenmitglied
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 02.10.08
|
 |
|
 |
Wohnort: Greifswald
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.12.2008, 16:09
Titel:
|
 |
50 m-files die alle nicht-funktional aufgebaut sind? *hm* Beim nächsten Projekt würde ich an deiner Stelle möglichst von anfang an funktional arbeiten.
Ansonsten bleibt dir nur die obige Zuweisung wie samsa sie dir beschrieben hat. Kannst ja eine Funktion draus machen.
_________________
>> why
The computer did it.
|
|
|
|
|
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.
|
|