Verfasst am: 25.11.2015, 11:21
Titel: Struktur oder Klasse
Hallo Leute,
ich weiß gerade nicht weiter. Ich hatte eigentlich vor structs zu erstellen brauche aber mehrere mit der Form Objekt(i)=..., hab es aber nicht hinbekommen Sie zu erstellen. Ich habe es mit einer for-Schleife versucht, hab hier aber gelesen das es so auch nicht geht. Am Anfang meines Programms wird eingegeben wie viele structs es geben soll und im laufe des Programms füllen und ändern Sie sich. Ein struct soll wie folgt aussehen:
Objekt(1)=struct(Variable, Vektor, Vektor, Variable, Variable, Vektor, Variable)
(Ich weiß das es nicht die korrekte Syntax ist, ich will damit nur zeigen welche Datentypen ich brauche)
Nun zur meiner Frage, ich bin nicht sicher ob es besser ist ein struct oder doch eine Klasse zu erstellen, vielleicht könnt Ihr mir weiterhelfen. Ich muss dazu sagen, dass ich nicht gut im Programmieren bin und nicht sicher bin, ob es für mich vielleicht zu kompliziert ist eine Klasse zu erstellen.
Ich hab auch im Netzt nicht wirklich Infos gefunden, wofür man genau struct oder class benutzt, deswegen bin ich gerade etwas ratlos.
Vielleicht kann mir jemand sagen was für mein Programm besser ist?
Vielen Dank im voraus und liebe Grüße
Verfasst am: 25.11.2015, 12:16
Titel: Re: Struktur oder Klasse
Hallo 123abc,
Zitat:
Ich hatte eigentlich vor structs zu erstellen brauche aber mehrere mit der Form Objekt(i)=..., hab es aber nicht hinbekommen Sie zu erstellen.
Bitte poste den Code und erkläre, was genau nicht so funktioniert wie beabsichtig. Bekommst Du eine Fehlermeldung oder weicht das Ergebnis von den Erwartungen ab?
Zitat:
Objekt(1)=struct(Variable, Vektor, Vektor, Variable, Variable, Vektor, Variable)
(Ich weiß das es nicht die korrekte Syntax ist, ich will damit nur zeigen welche Datentypen ich brauche)
Ich kann nicht erraten, was diese Schreibweise bedeutet, da es keine valide Matlab-Syntax ist. Vektoren sind ja ebenfalls Varaiblen in Matlab.
Ich sehe bisher nichts, was gegen struct's spricht.
Biene(i)=struct('status',status(i),'BinVektor',BinVektor(i),'KundenVektor',KundenVektor(i),...
'Kosten',Kosten(i),'X',X(i),'vorher_BinVektor',vorher_BinVektor(i),'vorher_Kosten',vorher_Kosten(i));
end
und hab die Fehlermeldung: Index exceeds matrix dimensions.
Zum aussehen der Structs:
Ich brauche bei einigen Variablen(wie Status oder Kosten) halt nur einen Wert pro struct und bei anderen(wie BinVektor oder KundenVektor) ist es ein Vektor und ich weiß nicht wie genau das Unterschieden wird. Bei meinem Beispielcode hat jetzt beides die selbe Form.
Liebe Grüße
das bedeutet, dass min. eine der Variablen eben keine 20 Elemente hat. Ein Blick in den Workspace Browser dürfte helfen, diese Variablen zu identifizieren.
Wenn für ein Feld immer derselbe Wert genommen werden soll, dann das
(i)
hinter der Variable weglassen.
Hallo,
die Variablen selber sollen auch gar keine 20 Elemente haben, sonder ich möchte 20 structs bekommen. Die Variablen sind zu diesem Zeitpunkt noch alle leer, die werden erst danach Initialisiert. Und im Workspace steht bei den Variablen nur der Name, also zum Beispiel: Status 'Status'
Liebe Grüße
wird ganz klar auf die Variablen wie "BinVektor(i)" zugegriffen. Falls diese Variablen aber noch gar nicht existieren, was soll BinVektor(i) dann sein?!
Vielleicht meinst Du:
Code:
for i=1:AnzBienen
Biene(i) = struct('status', [], 'BinVektor', [], ... ... usw
end
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
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.