【问题标题】:What is the syntax for declaring a global 2-dimensional array in MATLAB?在 MATLAB 中声明全局二维数组的语法是什么?
【发布时间】:2012-03-30 13:21:27
【问题描述】:

在 MATLAB 中声明全局二维数组的语法是什么?

我希望数组为空白或未初始化。也就是说,我希望稍后能够使用 for 循环将其初始化为某个值。到目前为止,我遇到的所有示例都包括在声明数组时对其进行初始化。我觉得这很乏味,因为我的数组可能必须很大。

谢谢。

【问题讨论】:

  • 将变量设为全局变量并为其赋值(在您的情况下为二维矩阵)是完全独立且独立的操作。

标签: matlab


【解决方案1】:

在使用之前先将变量声明为全局变量:

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 中通常要快得多。

【讨论】:

    猜你喜欢
    • 2012-12-11
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    相关资源
    最近更新 更多