是否可以在循环内的 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
Matlab 文档说:“全局命令没有函数形式(即,您不能使用括号和引用变量名)。”任何建议的解决方法?谢谢!
最佳答案
您可以使用 EVAL执行此操作的功能:
for var = 1:numel(cellvar)
eval(['global ' cellvar{var}]);
end
此外,由于 GLOBAL接受变量名称的命令行列表,您可以使用 SPRINTF 避免 for 循环将您的变量名称连接成一个要评估的字符串:
eval(['global' sprintf(' %s',cellvar{:})]);
关于matlab - 在 MATLAB 中的循环中声明全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6834311/