|
|
Globale Variablen aus Cell array deklarieren |
|
Huckle Berry |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 23.07.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2012, 20:26
Titel: Globale Variablen aus Cell array deklarieren
|
 |
Hallo,
ich bin noch nicht so erfahren in Matlab und habe ein Problem mit globalen Variablen. Ich habe in Fortran einige größere Datensätze (commons), möchte diese in Matlab übersetzen.
Ich möchte die Variablennamen in ein cellarray zusammenfassen, und die Deklaration global x1 x2 ... x20 verkürzen zu können, und zwar ungefähr so:
function [dingdong] = deklariereGlobal(cellarray)
for i = 1:length(cellarray)
b=char(cellarray(i))
eval(['global ' b]);
end
end
Im Hauptprogramm ist der Code ausführbar und alles OK, wenn ich aber in einer Unterfunktion die globalen Variablen deklarieren will, sind die entsprechenden Variablen unbekannt.
Vielen Dank im Voraus für eure Hilfe
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 23.07.2012, 21:34
Titel:
|
 |
Hallo,
globale Variablen sind nicht empfehlenswert. Getoppt wird das eigentlich nur dadurch, dass du auch noch eval verwendest, um diese zu definieren.
MATLAB ist eine vektorisierte Sprache; man sollte also vektorwertige Variablen statt eine Serie durchnumerierter Variablen verwenden.
Um diesen Code überhaupt verstehen zu können, wäre wichtig zu wissen, was die Variable cellarray enthält.
Grüße,
Harald
|
|
|
Huckle Berry |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 23.07.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2012, 08:57
Titel:
|
 |
Hallo Harald,
entschuldige, wenn das unklar ausgedrückt war..
also das Cellarray enthält die Namen von Variablen, die ich global definieren möchte, es sind selber Vektoren verschiedener länge, (x1..x20 ist kein Vektor).
Grüße
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 24.07.2012, 09:06
Titel:
|
 |
Hallo,
die Frage ist, warum du überhaupt Variablen x1...x20 hast. Warum nicht ein Cell Array x, in das mit x{1}...x{20} geschrieben bzw. aus dem mit der gleichen Syntax gelesen werden kann?
Variablen sollten nach Möglichkeit übergeben werden anstatt global deklariert werden. Ich habe aber mal versucht, die Probleme mit deinem Code nachzuvollziehen, und es gelingt mir nicht. Es wäre also gut, wenn du ein Beispiel posten kannst, anhanddessen man das Problem reproduzieren kann.
Grüße,
Harald
|
|
|
|
|
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.
|
|