|
|
Cell Inhalte als Variablen in Workspace |
|
grinsetina83 |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 31.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.05.2013, 14:18
Titel: Cell Inhalte als Variablen in Workspace
|
 |
|
 |
|
Hallo Leute,
ich bin eigentlich mehr der Simulink User, muss mir aber für mein Modell nun die Variablen erst mal im Workspace erstellen. Hintergrund ist, dass ich aus einem DAT-File sowohl die Variablennamen, als auch die Werte dazu einlese.
Ich habe nun eine Workspace Variable "Ergebnis" <1x4 cell>
Innerhalb dieser Cell sind in dem Ergebnis{1,2}(:,1) die Namen meiner Variablen enthalten und in Ergebnis{1,4} zeilenweise die Werte.
D.h. in jeder Zeile aus im Ergebnis{1,2} steht nur ein Name, diesen möchte ich als Variable im Workspace deklarieren und aus Ergebnis {1,4} stehen in der gleichen Zeile teilweise mehrere Werte, die der Variable zugeordnet werden sollen.
Ich kann dazu leider keinen Code posten, aber der Aufbau ist wie folgt:
Ergebnis{1,2}....Ergebnis{1,4}:
(:,1)..................(:,1) (:,2) (:,3) usw.
Name1...............1......0......0
Name2...............2......3......4
Name3...............1......1......1
=> format cell...=> format double
Ich hätte dann gerne im Workspace:
Name1 = [1 0 0]
Name2 = [2 3 4]
Name3 = [1 1 1]
Würde mich sehr freuen, wenn mir da wer helfen könnte, auch noch einiger Suche in der Hilfe, Forum oder Inet hab ich dazu nichts hilfreiches gefunden.
|
|
|
|
|
kordu |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.05.2013, 14:49
Titel:
|
 |
Du willst im Endeffekt dynamisch Variablen deklarieren. Häufig wird die Frage gestellt, wenn Leute Variablen durchnummerieren wollen (A1, ..., A10). Das kann man mit `eval` und einer for-Schleife zusammenfrickeln. Das ist dann aber wirklich fehleranfällige Frickelei. Du musst dir dann halt in einer for-Schleife einen String zusammenbauen, der dann mit eval ausgefuehrt wird eval('foobar = [1, 2, 3]').
Ich weiß nicht was du machen willst, aber bevor man `eval` nutzt gibt es häufig eine bessere Alternative. Zum Beispiel eine Struktur.
Ausgabe:
>> results
results =
foo: [1 2]
foobar: [3 4]
warsdfda: [5 6]
|
|
|
grinsetina83 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 31.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.05.2013, 14:59
Titel:
|
 |
Hallo kordu,
danke erst mal für die Antwort. Um vielleicht meine Zielstellung klarer zu formulieren:
Ich habe ein Simulink Model in dem ich Constanten aus dem Workspace aufrufe. Diese haben einen festen Namen in meinem Modell.
Diese Constanten habe ich bislang in einem m-File händisch mit Werten belegt, die ich jedoch nun aus einem dat-File automatisch einlesen lassen möchte. Das Problem an der Struktur ist bei mir nun, dass ich an den Inhalt ja wieder nicht in Simulink ran komme.
Beispiel: in Simulink steht in einem constant-Block: Name1
Die Variabel Name1 steht in meinem Cell zb in Ergebnis{1,2}(10,1) und die zugehörigen Zahlenwerte in Ergebnis{1,4}(10,: ) = [1 2 3 4];
Auf diese Zahlenwerte will ich nun in Simulink zugreifen können.
Ich hab leider nicht mal eine Idee, wie ich das clever anstellen könnte ...
|
|
|
kordu |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.05.2013, 15:38
Titel:
|
 |
Ich kenne mich mit Simulink leider nicht aus. Vielleicht gibt es da schon eine vorgesehen Lösung. Ansonsten musst du eben doch mit eval arbeiten. Ich verstehe immer noch nicht in was fuer eine Datenstruktur deine Namen stehen (was Ergebnis{1,2} fuer einen Typ hat - ein normales Array? Dann muessten alle Namen die gleiche Laenge haben).
Prinzipiell dann halt so etwas in der Art:
|
|
|
grinsetina83 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 31.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.06.2013, 11:35
Titel:
|
 |
Hallo kordu,
mit ein wenig anpassen hat dein Vorschlag funktioniert - vielen Dank!
LG
|
|
|
|
|
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.
|
|