|
|
string und num in Struct abspeichern |
|
JohnLocke |

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 07.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 11:02
Titel: string und num in Struct abspeichern
|
 |
Hallo,
habe ein string (z.B. Fenster) und eine Zahl (z.B. 5).
Nun möchte ich ein Strukt erstellen (z.B. Haus).
Darin soll automatisch gespeichert werden
Haus.Fenster=5...
wie mache ich das?
Das Ganze soll in einer For-SChleife laufen und ca. 40 Eigenschaften so nacheinander in das Struckt speichern.
Hab schon viel gesucht, aber nix gefunden...
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 11:57
Titel:
|
 |
Hallo,
suchst du sowas?
Grüße,
Harald
|
|
|
JohnLocke |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 07.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 12:35
Titel:
|
 |
jein,
Das hier ist mein Code:
Also ich les ne Excel Datei aus. die Excel Datei hat 2 Spalten, den Namen (als String z.B. Fenster) und einen Zugehörigen wert (als Zahl z.B. 5).
Mithilfe des obigen Codes kann ich lauter einzelne Variablen erstellen, die den Namen und den zugehörigen Wert haben.
Jetzt würde ich aber gerne innerhalb der Schleife namen und wert in eine Stucktur speichern.
Wenn ich aber sag: strucktur.string=zahl dann speicherts natürlich nicht den richtigen Namen sondern "string" ab.
Hab ich mein Problem verständlich geschildert?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 13:29
Titel:
|
 |
Hallo,
genau das wird doch gelöst, wenn du
schreibst?
Grüße,
Harald
|
|
|
JohnLocke |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 07.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 13:36
Titel:
|
 |
@Harald - nicht ganz.
Weil ich string ja immer in jedem Schleifendurchlauf benützte speicherts mir immer die neue Zahl unter "daten.string" ab
Dann hab ich nachher zwar jede Zahl kurz im String abgespeichert gehabt. Aber am Ende ist nur die Letzte Zahl gespeichert.
Aber ich will dass es das unter dem Namen, der im String abgespeichert ist abspeichert.
Wenn also
ist.
Möcht ich dass nachher
rauskommt.
Wird mein Problem klarer?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 13:41
Titel:
|
 |
Hallo JohnLocke,
Von der EVAL-Methode kann ich wärmstens und mit Nachdruck abraten! Das macht mehr Probleme als es löst.
Gruß, Jan
|
|
|
JohnLocke |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 07.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 13:47
Titel:
|
 |
Ich habs =)!!
Das hat noch in meine SChleife reingehört!! =)!
|
|
|
JohnLocke |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 07.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 13:48
Titel:
|
 |
Ok,
beim mir funktionierts jetzt auch ohne EVAL... nur interessehalber:
Wo ist das Problem an der EVAL - Methode?
Bei mir hats gut funktioniiert...
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 13:53
Titel:
|
 |
eval ist nur sehr schwer zu debuggen und alles was das debuggen erschwert ist mist ^^
_________________
richtig Fragen
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 14:14
Titel:
|
 |
|
 |
|
Hallo JohnLocke,
Matlab wird durch eine Methode beschleunigt, die "JIT acceleration" heißt. Diese analysiert eine M-Funktion zunächst und kann sie dann deutlich schneller ausführen. Wenn man dann aber dynamisch, also während der Laufzeit, neue Variablen erzeugt, wird die Analyse inkonsistent und Matlab kann massive langsamer werden. Das kann auch ein Faktor von 100 sein.
Zudem kann man nicht mehr im Editor nach der Zeile suchen, in der eine Variable definiert wurde. Und sowie ein Code eine Grenze von 1000 Zeilen überschreitet, wird das Debugging sehr wichtig, denn nicht-triviale Programme enthalten immer Bugs.
Wenn man dann 20 EVALs vor sich hat, ist das Löschen des Files die effizienteste Methode um Fehler zu beheben.
Ein weiterer Nachteil ist, dass man für Variablen, die kompliziert per Eval erstellt wurden, später wqieder genauso komplizierte Methoden benötigt, um auf die Variablen zuzugreifen. Und wenn es wirklich notwendig ist, den Namen einer Variablen dynamisch zu kreieren, zeigt dies, dass man hier Werte im Namen versteckt, anstatt sie ordentlich als Daten zu speichern. Die suaberer Trennung von Daten, Programmen und GUIs ist aber ein grundlegender Schritt bei der erstellung wartbaren und debugbaren Codes.
Gruß, Jan
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 14:31
Titel:
|
 |
Hallo,
JohnLocke hat Folgendes geschrieben: |
Ich habs =)!!
Das hat noch in meine SChleife reingehört!! =)! |
und da du string = raw{zaehler} gesetzt hast, ist es genau das, was ich dir vorgeschlagen habe.
Grüße,
Harald
|
|
|
JohnLocke |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 07.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.08.2013, 14:33
Titel:
|
 |
|
|
|
|
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.
|
|