Mad*_*ddy 3 variables matlab global
是否可以在循环内的MATLAB中声明全局变量:
cellvar = { 'ni' ; 'equity' ; 'assets' } ;
for i = 1:size(cellvar,1)
global cellvar{1} % --> THIS GIVES AN ERROR
end
% Desired result:
global ni
global equity
global assets
Run Code Online (Sandbox Code Playgroud)
Matlab文档说:"没有全局命令的函数形式(即,你不能使用括号并引用变量名称)." 任何建议的解决方案?谢谢!
您可以使用EVAL函数执行此操作:
for var = 1:numel(cellvar)
eval(['global ' cellvar{var}]);
end
Run Code Online (Sandbox Code Playgroud)
此外,由于GLOBAL接受变量名称的命令行列表,因此可以通过使用SPRINTF将变量名称连接成一个要评估的字符串来避免for循环:
eval(['global' sprintf(' %s',cellvar{:})]);
Run Code Online (Sandbox Code Playgroud)