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

objekt orientierte Optimierung

 

Bonersen
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 01.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2016, 13:41     Titel: objekt orientierte Optimierung
  Antworten mit Zitat      
Servus zusammen,

wie mein Themo schon sagt befasse ich mich mit einer Optimierung, welche in ein Objektorientierte Programmierung eingebunden werden soll.

Ich habe mir hierzu eine eigene Funktion geschrieben, welche die Funktionen einiger Klassen aufruft bzw. properties einiger Klassen als zu verändernde Variable setzt. Das ganze Programm ist zudem noch als structure gegliedert. Wenn ich jetzt in meiner function die verschiedenen Objekte aus der structure laden möchte bzw. darauf zugreifen möchte, kommt als Fehler "Reference to non-existent field '.....'", weil er nicht auf die structure im workspace zugreift.

Wie kann meine function auf die vorhandene Struktur zugreifen, damit ich auf meine verschiedenen Objekte und deren Funktionen/Properties zugreifen kann?

vielen Dank und liebe Grüße,
Bonersen
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.02.2016, 14:29     Titel:
  Antworten mit Zitat      
Hallo,

aus der Beschreibung ist es schwierig zu erahnen, wo genau das Problem liegt.
Falls die Übergabe von festen Parametern das Problem ist, siehe hier:
http://de.mathworks.com/help/optim/.....ing-extra-parameters.html
(mein bevorzugter Ansatz: anonyme Funktionen)

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Bonersen
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 01.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2016, 14:48     Titel:
  Antworten mit Zitat      
als kleines Beispiel folgendes:

function test = Optimerung (x)
....
h.FirstDesign.MinimumDiameterCalcn(h.GearConstraint1_calc, 250);
...
test= ...


kann nicht ausgeführt werden. Die Funktion MinimumDiameterCalcn ist Teil des Objektes "FirstDesign", welches in h abgelegt ist. Als Eingabewerte braucht diese Funktion eine Übersetzungsstufe, in diesem Fall h.GearConstraint1_calc, sowie ein Drehmoment, 250. Das struct "h" steht auch in meinem Workspace, wenn ich den Quellecode der Funktion alleine laufen lasse klappt auch alles, nur wenn ich in der toolbox dann auf @Optimierung anwenden will allerdings nicht, es kommt:

Reference to non-existent field 'GearConstraint1_calc'.

Also kann die function scheinbar nicht auf mein struct zugreifen.

Leider muss ich nicht nur einzelne Parameter auslesen, sondern muss auf ganze Funktionen oder Objekte zugreifen.

Lieben Gruß, Bonersen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.02.2016, 18:21     Titel:
  Antworten mit Zitat      
Hallo,

wo soll h denn herkommen?
Das scheint, wie schon gesagt, genau das Problem mit der Variablenübergabe zu sein - und das wird im genannten Link erklärt.

Grüße,
Harald
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.