|
|
Speichern von Objektinhalten über Laufzeitvariable |
|
Headfield |
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 01.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.09.2014, 15:26
Titel: Speichern von Objektinhalten über Laufzeitvariable
|
|
Hallo in die Runde,
ich habe eine Schleife, in der während jedem Zyklus ein Objekt erstellt und die verschiedenen Properties berechnet werden. Jetzt möchte ich gerne für jeden Zyklus dieses Objekt abspeichern und nach Ablauf aller Zyklen auf die verschiedenen Properties der einzelnen Zyklen zugreifen.
Hätte ich eine einfache Matrix, würde ich einfach eine weitere Dimension aufmachen und dort jede Matrix zugehörig zu jedem Zyklus abspeichern. Bei Objekten scheint das aber nicht so einfach zu funktionieren
Könnte mir jemand erläutern, wie ich diese Objekte zwischenspeichern kann?
Vielen Dank im Voraus und viele Grüße!
Mirko
|
|
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 19.09.2014, 15:13
Titel:
|
|
Hallo
Möglichkeiten
1) SAVE vewenden, also jedes Objekt im File abspeichern
2) STRUCT verwenden um aus Objekt-Properties eine Struct zu erzeugen, kann man dann daraus Array of Struct konstruieren
3) CELL nutzen um Objekte nach jedem Zyklus abzuspeichen
4) Array of Objekts erzeugen, dazu empty-Funktion der Klasse nutzen
http://www.mathworks.com/help/matla.....arrays.html?nocookie=true
Also die einfachste Möglichkeit wäre Cell, so in der Art
|
|
|
igotBAWS |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 11.02.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.02.2015, 15:56
Titel:
|
|
Hallo, ich habe eigentlich das selbe Problem wie der Thread-Ersteller, und dachte mir, ich klaue seinen Thread
Beispiel bei mir:
Ich habe damit gekämpft, dass ich verstehe, warum obj1.Anzahl [] liefert.
Dabei dachte ich, dass ich falsch zuweise, aber wenn ich in der Commandline obj1.setAnzahl = a mache, wird obj1 wirklich verändert.
Dann bin ich dank dem Debugger drauf gekommen, dass er wirklich was macht, und dann nachdem Anzahl = a gesetzt worden ist, er dann GLOBAL nichts abspeichert.
Wie soll ich das jetzt in meinem Beispiel machen, dass ich für immer und ewig die Werte der Objekten verändere?
Hoffe es ist verständlich, wenn nicht, wird's von mir noch klarer gesagt!
Danke schon im Voraus!
ps. Ich habe es mit save Objekaenderung und es hat alles in dieser datei gespeichrt. Jedoch hat dann iwie load Objektaenderung nichts in der Schleife geladen. Also musste ich immernoch händisch eingreifen.
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 11.02.2015, 16:41
Titel:
|
|
Hallo
wenn setAnzahl eine Methode ist, dann rufst doch diese Falsch
sollte doch
Oder war es hier nur falsch gepostet, weil sonst hättest du doch eine Fehlermeldung erhalten müssen. Jedefalls poste bitte den Code, wie es bei dir wirklich ist.
oder schreibe ein lauffähiges Beispiel, wo man dein Problem nachvollziehen kann:
z.B:
sei folgende Klasse gegeben
Aufruf wäre:
Zitat: |
>> obj1 = setprop()
>> obj1.setAnzahl(5)
>> obj1.getAnzahl
ans =
5
oder
>> obj1.setAnzahl(5*2)
>> obj1.getAnzahl
ans =
10
|
wie du siehst wird hier die Property richtig verändert, also bitte ich von dir auch ein nachvollziehbares Beispiel
|
|
|
igotBAWS |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 11.02.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.02.2015, 17:00
Titel:
|
|
Hallo denny! Danke mal für die rasche Antwort. Jetzt bin ich zuhause!
So weiß nicht ob das von Bedeutung ist, aber ich benutze Matlab2014a.
1. Ich konstruire mir dann zwei Objekten: DDD, Portfolio mit leeren Eigenschaften.
2. Ich starte die Funktion folgendermaßen: StartTrading(DDD, Portfolio)
3. Ergebnis: Nichts hat sich bei meinem Workspace geändert. (Außer ich drücke auf test.mat, aber das will ich automatisiert iwie haben).
Ich finde save / Load nicht schön, gibt es da eine elegantere Lösung ?
Bei mir funktionierts das Aktuallisieren den Werte, falls ich folgendes in der Command Line schreibe:
DDD.handeln = 'buy'
[DDD, Portfolio] = setAnzahl(DDD, Portfolio, 200, 5);
DDD =
PortfolioX with properties:
name: '3D Printers'
anzahl: 200
myValue: 0
handeln: 'buy'
preis: 5
|
|
|
|
|
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.
|
|