|
|
Objektorientiertes Programmieren: Klassen zuordnen |
|
Edin1993 |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 05.06.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.07.2021, 08:51
Titel: Objektorientiertes Programmieren: Klassen zuordnen
|
|
|
|
|
Hallo zusammen, ich habe auf die Schnelle keine Lösung im Forum oder anderswo gefunden.
Ich habe eine Klasse class_Coil bei der ich nicht weiß, wie ich diese am besten definieren soll. Ich habe eine übergeordnete Klasse class_Sensor welche aus mehreren Spulen (Coils) besehen kann. Da ich aber ungerne mit eval() arbeite um immer neue Spulen zu definieren, möchte ich es elegant in class_Coil lösen.
Nachdem ich dann irgenwie iterativ jede Spule parametrisiert (Prop1 bis PropN) habe will ich sie im Anschluss mit dem Parameter CoilNum (ich meine nicht NumCoils!!) an Sensor=class_Sensor übergeben
Ich dachte ich könne das mit einer handle class machen (siehe Code unten), aber da ich MasterCoil immer neu definiere, werden die anderen auch immer neu definiert und ich habe auch hier wieder die unschöne eval() Funktion mit der ich immer neue Variabeln Coil1, ... definiere.
Möglicherweise ist die Lösung ganz einfach.. Ich hoffe ich habe alles verständlich erläutert und ihr könnt mir helfen.
Danke im voraus.
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.07.2021, 10:17
Titel:
|
|
Hallo,
dynamisches Hochzählen ist immer unschön. Man fängt einmal mit eval an und kommt nicht mehr darum herum.
Spricht etwas dagegen, nur Prop als Eigenschaft zu definieren, was dann ein 1xnumCoils Array von Objekten wird? Wenn das Probleme macht, könnte Prop auch ein 1xnumCoils Cell Array sein.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Edin1993 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 05.06.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.07.2021, 12:21
Titel:
|
|
Hallo Harald,
danke für die Antwort, es spricht nichts dagegen. Eine Funktion wie bei Python mit den Dictionaries wäre hier schön, bei dem ich die Eigenschaften explizt angeben kann, eine quasi-Klasse.
Bei einem Cell array muss ich ja dann immer die Zahl/Index kennen unter dem Beispielsweise die Property "Windungen" abgespeichert wird. Das kann im späteren Skript mal schnell die falsche Zahl eingetragen werden.
Ich warte hier noch bisschen, vielleicht kommen noch andere Ideen rein, falls nicht, würde ich das vermutlich so handhaben, weil es mit meiner Systematik am besten übereinstimmt.
Liebe Grüße
Edin
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.07.2021, 13:32
Titel:
|
|
Hallo,
alternativ eine Struktur statt eines Cell Arrays, dann kannst du die Namen verwenden.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Edin1993 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 05.06.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.07.2021, 13:43
Titel:
|
|
Danke, das funktioniert
Ich schließe den Thread auch mal.
Habe es folgendermaßen gelöst:
Zuletzt bearbeitet von Edin1993 am 19.07.2021, 15:12, insgesamt einmal bearbeitet
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.07.2021, 14:55
Titel:
|
|
Hallo,
ein anderer Ansatz könnte hier noch sein, dass Parameter selbst ein Objekt mit Feldern Draht, Innendurchmesser, Aussendurchmesser ist ("Aggregation").
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
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.
|
|