【发布时间】:2012-03-30 13:21:27
【问题描述】:
在 MATLAB 中声明全局二维数组的语法是什么?
我希望数组为空白或未初始化。也就是说,我希望稍后能够使用 for 循环将其初始化为某个值。到目前为止,我遇到的所有示例都包括在声明数组时对其进行初始化。我觉得这很乏味,因为我的数组可能必须很大。
谢谢。
【问题讨论】:
-
将变量设为全局变量并为其赋值(在您的情况下为二维矩阵)是完全独立且独立的操作。
标签: matlab
在 MATLAB 中声明全局二维数组的语法是什么?
我希望数组为空白或未初始化。也就是说,我希望稍后能够使用 for 循环将其初始化为某个值。到目前为止,我遇到的所有示例都包括在声明数组时对其进行初始化。我觉得这很乏味,因为我的数组可能必须很大。
谢谢。
【问题讨论】:
标签: matlab
在使用之前先将变量声明为全局变量:
global my_glob_var;
MATLAB 并不真正支持“未初始化”变量的概念,但您可以创建一个 NaN 数组(不是数字)来指示尚未分配每个值。 nan 函数的参数表示您希望创建的 NaN 数组的大小:
my_glob_var = nan(200, 200)
如果您希望初始化零、一、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 中通常要快得多。
【讨论】: