|
|
|
Variablen mit Schleife definieren |
|
| Troll |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.07.2012, 15:23
Titel: Variablen mit Schleife definieren
|
 |
Hallo,
ich habe ein Problem und bin absoluter Matlab-Anfänger. Ich will eine Variable erzeugen unter der weitere Variablen abgelegt sind. Jedoch ist die Anzahl der Untervariablen verschieden und kann teilweise stark schwanken. Ich habe den Programmcode wie folgt ausgelegt.
n = input('Geben Sie die Anzahl der Aufgaben ein! ');
for i=1:1:n
wissensspeicher.Aufgabe(i)=ones(5,5);
end
Ich kriege jedoch immer wieder diesen Fehler und verstehe nicht warum.
In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in Untitled (line 4)
wissensspeicher.Aufgabe(i)=ones(5,5);
Kann mir jemand von euch weiterhelfen?
Vielen Dank und Gruß
Troll
|
|
|
|
|
|
| Kascho |

Forum-Century
|
 |
Beiträge: 195
|
 |
|
 |
Anmeldedatum: 24.03.10
|
 |
|
 |
Wohnort: Jena
|
 |
|
 |
Version: R2008b ... :(
|
 |
|
|
 |
|
Verfasst am: 04.07.2012, 15:44
Titel:
|
 |
Hallo Troll,
du hattest es fast richtig, und die 1 bei der for schleife brauchst de nicht schreiben
*edit: Grundsätzlich sollte man noch preallokieren, falls es zu hohen n oder allgemein zu Performanceproblemen kommen sollte
Gruß, Kascho
|
|
|
|
| Troll |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.07.2012, 19:35
Titel:
|
 |
Hallo Kascho,
die zusätzliche 1 in der for-Schleife war ist ja eigentlich nur dafür da in 1er Schritten voranzugehen.
Deine Lösung ist auf jedenfall auch nicht das was ich brauche. Wenn ich z.B. schreibe:
wissensspeicher.aufgabe1=ones(5,5)
wissensspeicher.aufgabe2=ones(5,5)
dann hinterlegt er hinter wissensspeicher zwei Variablem mit den Namen aufgabe 1 und aufgabe 2 mit jeweils einer 5x5 Matrix vollbesetzt mit Einsen. Das will ich jetzt mit der Schleife für n Aufgaben machen. Verstehst du jetzt besser was ich meine?
Dementsprechend kann in deiner Lösung das (i) nicht richtig plaziert sein.
Kann mir jetzt besser jemand helfen?`
Gruß
Troll
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.07.2012, 21:36
Titel:
|
 |
Hallo,
was du beschreibst, würde mit
gehen.
Die Frage ist jedoch, was du damit bezweckst. Wenn du die Aufgabe wieder abrufen willst, musst du da mit einem ähnlichen Konstrukt herangehen. Da wäre die von Kascho vorgeschlagene Variante zwar nicht das, was du ursprünglich wolltest, aber dafür deutlich handlicher.
Grüße,
Harald
|
|
|
|
| Kascho |

Forum-Century
|
 |
Beiträge: 195
|
 |
|
 |
Anmeldedatum: 24.03.10
|
 |
|
 |
Wohnort: Jena
|
 |
|
 |
Version: R2008b ... :(
|
 |
|
|
 |
|
Verfasst am: 04.07.2012, 23:09
Titel:
|
 |
Abend Troll,
| Zitat: |
| Das will ich jetzt mit der Schleife für n Aufgaben machen. Verstehst du jetzt besser was ich meine? |
Ganz ehrlich? Nein. Versuche bitte nochmal dein Problem bzw. deine Aufgabe bzw. dein Ziel etwas näher zu erläutern.
Falls du deine Daten später noch sinnvoll und einfach verwenden möchtest, ist die Variante aus meinem ersten Post, so wie es Harald schon sagte, deutlich einfacher zu handeln.
Gruß, Kascho
|
|
|
|
| Troll |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.07.2012, 09:38
Titel:
|
 |
Hallo,
also die Lösung von Harald ist eigentlich das was ich gesucht habe. Ich will jetzt in den einzelnen Matrizen Werte hinterlegen, mit denen ich später Berechnungen durchführen kann.
Ist es einfacher das nur mit einer Ebene zu machen und den wissensspeicher wegzulassen? Ist meine Version den viel schwieriger?
Grüße
Troll
|
|
|
|
| Thomas84 |

Forum-Meister
|
 |
Beiträge: 546
|
 |
|
 |
Anmeldedatum: 10.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.07.2012, 09:54
Titel:
|
 |
man kann auch cell-arrays verwenden statt struct arrays:
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 05.07.2012, 15:06
Titel:
|
 |
Hallo,
| Zitat: |
| Ist es einfacher das nur mit einer Ebene zu machen und den wissensspeicher wegzulassen? Ist meine Version den viel schwieriger? |
Wenn keine weiteren Daten mitgespeichert werden sollen, wäre folgendes am einfachsten:
Grüße,
Harald
|
|
|
|
| Troll |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.07.2012, 16:17
Titel:
|
 |
Vielen Dank für eure Antworten. Ihr habt mir sehr weitergeholfen. Wenn ich nochmal Hilfe benötige, dann melde ich mich wieder.
Grüße
Troll
|
|
|
|
|
|
|
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.
|
|