2012-03-30 3 views
1

Wie lautet die Syntax zum Deklarieren eines globalen 2-dimensionalen Arrays in MATLAB?Wie lautet die Syntax zum Deklarieren eines globalen zweidimensionalen Arrays in MATLAB?

Ich möchte das Array leer oder nicht initialisiert sein. Das heißt, ich möchte es zu einem späteren Zeitpunkt mit einer For-Schleife initialisieren können. Alle Beispiele, auf die ich bisher gestoßen bin, bestehen darin, das Array zu initialisieren, wenn es deklariert wird. Ich finde das ziemlich mühsam, weil mein Array möglicherweise sehr groß sein muss.

Danke.

+1

Wenn Sie eine Variable global machen und ihr einen Wert zuweisen (in Ihrem Fall eine 2-D-Matrix), sind dies völlig separate und unabhängige Operationen. –

Antwort

1

eine Variable als globales es vor der Verwendung zuerst erklären:

global my_glob_var; 

MATLAB nicht wirklich das Konzept der ‚uninitialised‘ Variablen unterstützen, aber Sie können eine Reihe von NaNs (keine Zahl) erstellen, um anzuzeigen, dass jeder Wert noch nicht vergeben wurde. Die Argumente für die nan Funktion zeigen die Größe des NaN Array Sie erstellen möchten:

my_glob_var = nan(200, 200) 

Es gibt noch weitere ähnliche Funktionen, falls Sie möchten initialisieren Arrays von Nullen, Einsen, Inf usw.

Dann innerhalb der Funktionen, die Sie es in, erklären sie als global wieder verwenden möchten:

function my_function 

global my_glob_var % allows this function to use the global variable 
my_glob_var   % outputs the variable to command 

als Nebenwirkung beachten Sie, dass Sie „es bis zu einem gewissen Wert initialisieren später mit einer for-Schleife“ wird. Abhängig davon, wie Sie das Array initialisieren, kann es einen vektorisierten Weg geben, dies zu erreichen (d. H. Ohne eine For-Schleife zu verwenden). Vektorisierte Operationen sind in MATLAB normalerweise viel schneller.

Verwandte Themen