|
|
Neuen Vektor bei jeder Itration erstellen |
|
JohnnyCash |
Forum-Fortgeschrittener
|
|
Beiträge: 57
|
|
|
|
Anmeldedatum: 22.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 22.07.2009, 12:09
Titel: Neuen Vektor bei jeder Itration erstellen
|
|
Hey...
bin absoluter newbie im Programmieren mit matlab.
hab ein kleines Problem, welches für die Alteingesessenen hier sicherlich lächerlich klingt^^
Ich würde gern mit jeder neuen for Iteration einen neuen Vektor erzeugen, welcher ein zeros(1,2)-Vektor sein soll...
ich dachte da zuerst an sowas:
dass ich also nach der iteration folgenendes ergibt
Tour1 = [0 0]
Tour2 = [0 0]
...
Tour9 = [0 0]
leider will er so nicht...
natürlich bestünde die Möglichkeit, anstelle eines neuen Vektors einfach eine Matrix zuerstellen und eine neue Zeile anzufügen.
Bringt mir bloß leider in meinem Fall nix...
Kann jemand helfen?
Johnny[/code]
|
|
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.07.2009, 12:24
Titel:
|
|
Hallo,
zwei Möglichkeiten die mir im Moment einfallen, wenn Du keine Matrix haben möchtest wären mit einem struct zu arbeiten oder mit assignin.
|
|
|
Dagnabit |
Forum-Century
|
|
Beiträge: 244
|
|
|
|
Anmeldedatum: 23.04.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.07.2009, 12:32
Titel:
|
|
...
und auch noch ´ne dritte Möglichkeit:
_________________
lg
Martin
|
|
|
JohnnyCash |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 57
|
|
|
|
Anmeldedatum: 22.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 22.07.2009, 12:40
Titel:
|
|
danke für die schnelle Hilfe!
die dritte variante funktioniert leider nicht...er gibt folgende fehler meldung aus:
??? Index exceeds matrix dimensions.
Error in ==> vektor at 2
eval(['Tour' num2str(i) ' = zeros(1,2)'])
|
|
|
Dagnabit |
Forum-Century
|
|
Beiträge: 244
|
|
|
|
Anmeldedatum: 23.04.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.07.2009, 12:59
Titel:
|
|
Servus Johnny
Bei mit läuft die Schleife problemlos.
Wenn Du nur die drei Zeilen ausführst, sollte sie ansich auch bei Dir laufen.
Vielleicht löscht Du mal alle Variablen im Workspace.
Wenn das nichts hilft und Du die die Schleife erweitert hast, poste mal den veränderten Code.
_________________
lg
Martin
|
|
|
JohnnyCash |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 57
|
|
|
|
Anmeldedatum: 22.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 22.07.2009, 13:13
Titel:
|
|
hast recht dagna, war mein fehler!
ja clear all sollte man wohl nie vergessen
|
|
|
JohnnyCash |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 57
|
|
|
|
Anmeldedatum: 22.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 22.07.2009, 22:00
Titel:
|
|
so leider ist ein neues Problem aufgetaucht...
jetzt habe ich zwar meine Vektoren erzeugt, also
Tour1 = [0 0]
...
Tour9 = [0 0]
doch in einem nächsten Schritte, möchte ich in einer Schleife immer eine bestimmten Vektor (Tour1,..,2) bearbeiten, damit ich an diesen Elemente hinzufügen kann.
wenn ich das mal in einer art pseudocode für mein Bsp ausdrücke:
(ones(1,1)-vektor wird an die k.te Tour angehängt)
ist das irgendwie möglich?!
Ich weiß mit einer Matrix würde das alles allgemein einfacher...doch füge ich eine verschiedene Anzahl von Elementen an die verschieden Vektoren, was in einer Matrix zur falschen Lösung führen würde.
Johnny
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.07.2009, 22:41
Titel:
|
|
Hallo,
wenn Du bei den einzelnen Variablen bleiben willst, müsstest Du Dir die einzelnen Befehle wieder als string zusammen bauen und mit eval auswerten lassen (wie von Dagnabit vorgeschlagen).
Mit dem Datentyp struct oder cell lässt sich da doch angenehmer arbeiten.
In einer cell können Vektoren unterschiedlicher Länge gespeichert werden.
Beispiel:
|
|
|
JohnnyCash |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 57
|
|
|
|
Anmeldedatum: 22.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 22.07.2009, 23:00
Titel:
|
|
hmm weiß leider nich wirklich wie ich das in mit cell oder struct machen sollte. das ich es mit eval vielleicht hinbekomme hatte ich mir schon erhofft.
bloß wie muss ich mir das vorstellen?
so oder ähnlich?
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.07.2009, 00:06
Titel:
|
|
Hallo,
aus der MATLAB Doku:
eval(expression) executes expression, a string containing any valid MATLAB expression. You can construct expression by concatenating substrings and variables inside square brackets.
Du übergibst eval einen string, der einen Matlab ausdruck enthält, dieser wird dann ausgwertet.
Beispiel:
Nun musst Dir Dir also immer strings mit MATLAB Ausdrücken basteln.
Warum meinst Du denn, dass z.b. cell nicht funktioniert?
|
|
|
JohnnyCash |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 57
|
|
|
|
Anmeldedatum: 22.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 23.07.2009, 00:21
Titel:
|
|
nein du hast mich falsch verstanden. wahrscheinlich funktioniert cell oder struct sogar besser. Leider bin ich wie oben schon gesagt absoluter newbie und kenn mich noch nicht wirklich aus.
ich wollte bloß endlich mal meine anwendung zum laufen bringen
hab mich grad nochmal über struct belesen...
vielleicht sollte ich es so machen:
dannn könnte ich doch auf die einzelnen vektoren über struct zugreifen oder?
bloß beinhaltet mein code einen Denkfehler.
Es kann auch sein dass du Little mir genau dass schon oben angeboten hast, sei mir nicht böse
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.07.2009, 09:12
Titel:
|
|
ah ok
am besten liest Du mal in der MATLAB Doku unter
Programming Fundamentals->Classes (Data Types) Dir die entsprechendnen Abschnitte durch.
Hier mal noch ein Vorschlag, wie Du das ganze mit cell und struct hinbekommen kannst:
|
|
|
JohnnyCash |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 57
|
|
|
|
Anmeldedatum: 22.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 23.07.2009, 10:36
Titel:
|
|
LittleX...
Ich danke dir! Ich werds dann wohl doch über die Cells machen, erscheint mir der optimale Weg zu sein.
Soweit ich das jetzt überblickt habe, kann ich dann ja auch einzelne Elemente der Cell auswerten.
Bsp.: C{4}(3,1) = 1 + 1
genau das habe ich gesucht.
Nochmals thx
Johnny
|
|
|
|
|
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.
|
|