|
|
Strukturvariable mit Zahl verbinden |
|
Grünschnabel |

Forum-Fortgeschrittener
|
 |
Beiträge: 80
|
 |
|
 |
Anmeldedatum: 01.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2013a
|
 |
|
|
 |
|
Verfasst am: 21.10.2013, 03:21
Titel: Strukturvariable mit Zahl verbinden
|
 |
Hallo Zusammen,
ich würde gerne meine Strukturvariablen aus einem String und einem int zusammen setzen, dies gelingt mir aber nicht. Hier ist ein kleines Beispiel, wie ich es erzeugen möchte.
In dem Vektor A stehen die Zahlen, die ich in meiner Strukturvariablen verwenden möchte.
Das Ergebnis soll eingentlich wie folgt aussehen:
Variable.10 = ...
Variable.20 = ...
Variable.300 = ...
Variable.4000 = ...
Kann mir jemand helfen? Es liegt vermutlich daran, dass ich keine int in Strukturvariablen verwenden darf, oder?!? Kann mir jemand bei der Lösung meines Problems helfen?
Vielen Dank für Eure Hilfe
der Grünschnabel
|
|
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 21.10.2013, 10:06
Titel:
|
 |
Hallo
Feldnamen haben den gleichen Syntax wie die Variablennamen.
Also der Name muss mit einem Buchstaben beginnen, danach können Zahlen und Unterstrich-Zeichen folgen. Keine Sonderzeichen, Satzzeichen, oder Operatoren, wie '+,-,*' sind erlaubt.
Außerdem nutze Dynamische Felder
Zuletzt bearbeitet von denny am 21.10.2013, 11:52, insgesamt einmal bearbeitet
|
|
|
Grünschnabel |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 80
|
 |
|
 |
Anmeldedatum: 01.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2013a
|
 |
|
|
 |
|
Verfasst am: 21.10.2013, 10:24
Titel:
|
 |
Hallo denny,
gut zu wissen, dass mein Idee Grundsätzlich nicht möglich ist.
Dann werde ich einen Buchstaben+Zahlen Kombination verwenden. Das ist auch ok und somit ist mein Problem gelöst. Vielen Dank für die schnelle hilfe!!!
Der Grünschnabel
|
|
|
Grünschnabel |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 80
|
 |
|
 |
Anmeldedatum: 01.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2013a
|
 |
|
|
 |
|
Verfasst am: 21.10.2013, 10:51
Titel:
|
 |
Sorry, dass ich nochmal störe aber ich bekomme folgende Warnung, wenn ich den Ansatz in meinen Code einbaue:
??? Warning: Struct field assignment overwrites a value with class "cell".
See MATLAB 7.0.4 Release Notes, Assigning Nonstructure Variables As Structures Displays Warning for details.
Ich arbeite mit folgendem Ansatz:
Deinen anderen Ansatz habe ich auch getestet aber die Warnung ist die Gleiche.
Ich habe die Hilfe gelesen aber finde keine Lösung. Hat jemand einen Vorschlag?!?
Vielen Dank
der Grünschnabel
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 21.10.2013, 10:56
Titel:
|
 |
Hallo
Die Warnung heißt ja, das du Variable schon irgendwo vorher genutzt hast, und diese hatte einen anderen Datentyp
versuche so:
Zuletzt bearbeitet von denny am 21.10.2013, 11:38, insgesamt einmal bearbeitet
|
|
|
Grünschnabel |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 80
|
 |
|
 |
Anmeldedatum: 01.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2013a
|
 |
|
|
 |
|
Verfasst am: 21.10.2013, 11:09
Titel:
|
 |
Wow, die Lösung war so einfach und doch so fern (für mich)!
Das war die Lösung für mein Problem.
Vielen Dank du hat mir sehr geholfen!!!
Schöne Grüße
der Grünschnabel
|
|
|
Grünschnabel |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 80
|
 |
|
 |
Anmeldedatum: 01.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2013a
|
 |
|
|
 |
|
Verfasst am: 22.10.2013, 12:18
Titel:
|
 |
Hallo Zusammen,
ich habe eine weitere Frage zur Verwendung von Strukturvariablen.
Ich verwende bis jetzt folgenden Code:
Die Funktion gibt zwar den richtigen Wert wieder, überschreibt aber meine "zuvor erzeugte Struktur" und speichert den Wert unter Var1, nicht aber in einer Struktur.
Mein Ziel ist es, den Rückgabewert der Funktion unter folgender Struktur abzuspeichern:
Land_1.Name.Wert = Rückgabewert 1
Land_2.Name.Wert = Rückgabewert 2
...
Land_5.Name.Wert = Rückgabewert 5
Wie kann ich das Problem lösen, habt ihr eine Idee?!?
Vielen Dank im Voraus.
Der Grünschnabel
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 22.10.2013, 17:28
Titel:
|
 |
Hallo
das ist keine gute Idee, den Index in den Namen zu verwenden
besser :
so in etwa:
|
|
|
Grünschnabel |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 80
|
 |
|
 |
Anmeldedatum: 01.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2013a
|
 |
|
|
 |
|
Verfasst am: 23.10.2013, 04:16
Titel:
|
 |
|
 |
|
Hallo denny,
vielen Dank für Deine schnelle Hilfe. Dein Vorschlag geht in die richtige Richtung, vermutlich muss ich aber meine Fragestellung etwas präzisieren. Sorry...
Ich möchte für eine beliebige Anzahl n je eine Struktur erzeugen, die im Workspace wie folgt erscheint:
Ebene1 . Ebene2 . Ebene3 = Rückgabewert
Land_1 . Name . Wert = Rückgabewert
Land_1 . Größe . Wert = Rückgabewert
Land_1 . Population . Wert = Rückgabewert
Land_2 . Name . Wert = Rückgabewert
Land_2 . Größe . Wert = Rückgabewert
Land_2 . Population . Wert = Rückgabewert
...
Land_n . Name . Wert = Rückgabewert
Land_n . Größe . Wert = Rückgabewert
Land_n . Population . Wert = Rückgabewert
Und so stelle ich mir meine Vorgehensweise vor. Ich lese aus einer Datei eine Information und speichere sie unter der Variable
InfoX = 'Land'
Da es mehrere Datensätze mit gleichem Namen "Land" gibt, möchte ich sie mit dem Index i kennzeichnen um so eine Unterscheidung zu haben. Dies wollte ich wie folgt lösen:
for i:1:5
b = [InfoX '_' (NUM2STR(i))]
end
Des weiteren werden Variablen definiert, die nicht dynamisch sind:
Var1 = 'Name'
Var2 = 'Größe'
Var3 = 'Population'
Var4 = 'Wert'
Ich habe deinen Vorschlag getestet aber der Aufbau der Struktur ist anders.
Ich würde gerne im Worksapce auf "Land_1" klicken und in der nächsten Ebene sollen die Felder Name, Größe, Population angezeigt werden.
Oh je, ist das schwer ein Problem exakt zu beschreiben. Sorry, und vielen Dank für Deine hilfe. Ich versuche es jetzt weiter.
Der Grünschnabel
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 23.10.2013, 12:24
Titel:
|
 |
|
 |
|
Grünschnabel hat Folgendes geschrieben: |
Ich habe deinen Vorschlag getestet aber der Aufbau der Struktur ist anders.
Ich würde gerne im Worksapce auf "Land_1" klicken und in der nächsten Ebene sollen die Felder Name, Größe, Population angezeigt werden.
Oh je, ist das schwer ein Problem exakt zu beschreiben. Sorry, und vielen Dank für Deine hilfe. Ich versuche es jetzt weiter.
Der Grünschnabel |
Hallo Grünschnabel
Was du versuchst ist einfach nicht gut, das sollte möglichst vermieden werden. Weil Dynamische Variablen sind einfach zu fehleranfällig und außerdem nicht debuggbar. Wenn du da drin einen Fehler verursachst, wünsche ich dir viel Spaß diesen zu suchen.
Also als erstes musst du bedenken, ob du diese Variablen irgendwo /irgendwann später verwenden möchtest? Wenn ja, dann besser gute Struktur anzulegen, und die Laufzähler verwenden. Das vereinfacht dein Leben.
Wenn du dir nur wg Anschauens einen Klick sparen möchtest, meinetwegen, schaue dir EVAL-Konstrukte an. Benutze dazu die Suchfunktion des Forum wurde hier schon unzählige Male diskutiert.
|
|
|
Grünschnabel |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 80
|
 |
|
 |
Anmeldedatum: 01.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2013a
|
 |
|
|
 |
|
Verfasst am: 23.10.2013, 13:09
Titel:
|
 |
Hallo denny,
vielen Dank für deine ehrliche Meinung, genau aus diesem Grund hast du den "Rang" eines Supporters und ich lediglich den des Forum-Anfängers...
Ich lasse meinen Ansatz dann besser sein und versuche deinen Lösungsvorschlag sinnvoll in meinen Code zu integrieren. Wenn er dann stabilder und leichter zu durchschauen ist, ist das für mich wirklich sinnvoller.
Vielen Dank.
Beste Grüße aus der Asien in die Heimat,
der Grünschnabel
|
|
|
|
|
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.
|
|