WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Zuweisungsproblem bei class members

 

Mircode
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 06.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.03.2011, 00:10     Titel: Zuweisungsproblem bei class members
  Antworten mit Zitat      
Hallo!

Ich habe eine handle-Klasse "entity" gebastelt. Ein member davon heißt "members" und soll ein Array von entities sein, children quasi.

Bei der Zuweisung der children gibt es aber Probleme:

e1=entity; e2=entity; e3=entity;

% vor den folgenden Zuweisungen ist members auf [] gesetzt, also ein 0x0 double nehme ich stark an.

e1.members=entity; % funktioniert problemlos
e2.members=[entity entity]; % funktioniert auch problemlos
e3.members(1:3)=entity;

??? The following error occurred converting from entity to double:
Error using ==> double
Conversion to double from entity is not possible.

% aber:
e1.members(1:3)=entity; % funktioniert, da der Datentyp von e1 bereits entity ist.

Was soll das?!

Mein Problem ist, dass ich die members von entities in for-Schleifen füllen möchte. Dabei sollte man die Liste ja nicht innerhalb der Schleife wachsen lassen, weil das langsam ist. Also muss ich vorher schon leere entites zuweisen. Aber wie? Was ich jetzt als Lösung sehe, wäre, erst ein Entity zuzuweisen, damit der neue Datentyp verstanden wird, und dann die volle Anzahl. Das ist aber äußerst unbefriedigend.

Kann ich irgendwie beim Initialisieren der Klasse bereits den Datentyp von members festlegen? Ohne dass da schon ein leeres Entity sein muss? Also auf 0x0 entity setzen?

Kann man überhaupt irgendwie Datentypen festlegen?

Hoffentlich habe ich alles verständlich ausgedrückt.

MfG,
Mirko
Private Nachricht senden Benutzer-Profile anzeigen


Mircode
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 06.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.03.2011, 12:44     Titel:
  Antworten mit Zitat      
Ich mach’s jetzt so:
Im Konstruktor des Objekts weise ich es sich selbst als member zu und lösche es anschließend wieder:

Code:

function ent=entity()
   ent.members=ent;
   ent.members(1)=[];
end
 


Auf diese Art ist der Typ dann auf [1x0 entity] gesetzt.

Gibt es dafür einen Weg, der weniger getrickst ist?
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.