| 
|  
|  | 
| 
 
 
	
		|  | 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 - 2025
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.
 
 
 |  |