在MATLAB中声明全局二维数组的语法是什么?
我希望数组为空白或未初始化。也就是说,我希望以后能够使用for循环将其初始化为某个值。到目前为止,我遇到的所有示例都包括在声明数组时初始化数组。我觉得这很乏味,因为我的阵列可能是一个很大的阵列。
感谢。
答案 0 :(得分:1)
在使用之前将变量声明为全局变量:
global my_glob_var;
MATLAB并不真正支持'未初始化'变量的概念,但您可以创建一个NaN数组(不是数字)来表示尚未分配每个值。 nan
函数的参数指示您要创建的NaN数组的大小:
my_glob_var = nan(200, 200)
如果您希望初始化零,1,Inf等数组,还有其他类似的函数。
然后在你想要使用它的函数内部,再次将它声明为全局:
function my_function
global my_glob_var % allows this function to use the global variable
my_glob_var % outputs the variable to command
顺便说一句,你注意到你将“稍后使用for循环将其初始化为某个值”。根据您初始化阵列的方式,可能有一种矢量化方式来实现这一点(即不使用for循环)。在MATLAB中,矢量化操作通常要快得多。