matlab - 在 MATLAB 中的循环中声明全局变量

标签 matlab variables 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

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/

相关文章:

matlab:向量化对 N 个二进制矩阵进行 ORing 的单个循环

matlab - 如何使用带有 Matlab 的 Nvidia Visual Profile 来分析 CUDA

matlab - 如何在使用邻接矩阵表示的大型网络中找到桥梁(社区连接节点)

bash - 解析命令和命令选项的 bash 变量

php - 解析错误在 PHP 中设置变量

javascript - 在全局上下文中使用类方法时, `this` 为未定义

c - MING文件运行错误

java - 修改Java内部类中的变量

ios - 不懂全局变量

c# - Powershell - 全局注册 IO.FileSystemWatcher