MATLAB中未定义的函数或变量

时间:2012-04-01 03:38:58

标签: matlab

我在MATLAB中运行主函数时遇到问题(主程序并调用其他函数)。试图运行它给我错误“???未定义的函数或变量'max_x_address'”。但是,正如您在下面所看到的,它已被宣布为全球性的。这真的困扰我,所以任何帮助将不胜感激。 (我是否必须修改我的pathdef.m文件?这就是MATLAB故障排除所说的,但是我遵循了一些步骤并没有帮助。)
以下是该计划的框架:

function Adaptive_Information
global HUBS, max_x_address, max_y_address;
.
.
max_x_address = 10;
.
.
end

2 个答案:

答案 0 :(得分:4)

您必须在将使用它的每个上下文中声明它是全局的。也就是说,添加:

global max_x_address

到将使用max_x_address的每个函数的开头,加上基础工作区(如果需要)。

答案 1 :(得分:2)

实际上是

global HUBS, max_x_address, max_y_address;

不会声明三个全局变量。逗号是Matlab中的语句或表达式分隔符,与EOL或分号一样。所以Matlab将上面的内容读作

global HUBS
max_x_address
max_y_address;

所以它的作用是将HUBS声明为全局。然后它尝试检索max_x_address的值并打印出来。最后,它将检索max_y_address的值并将其丢弃。

声明多个全局变量的正确语法是用空格分隔它们(另请参阅文档):

全球HUBS max_x_address max_y_address