matlab:有没有办法将变量从结构导入/提升到当前工作区?

标签 matlab workspace

function y = myfunc(param)
C = param.C;
L = param.L;
Kp = param.Kp;
Ki = param.Ki;
...

有没有办法概括上面的代码?我知道如何使用 fieldnames()getfield() 来概括结构访问,但不知道如何在不调用 eval() 的情况下设置变量(这是邪恶的)。

for n = fieldnames(param)'
  name = n{1};
  value = param.(name);
  do_something_with(name,value);   % ????

最佳答案

没关系,我已经明白了;这个辅助函数的工作原理:

function vars_pull(s)
    for n = fieldnames(s)'
        name = n{1};
        value = s.(name);
        assignin('caller',name,value);
    end

关于matlab:有没有办法将变量从结构导入/提升到当前工作区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9669635/

相关文章:

matlab - 如何生成所有可能的组合 n 位字符串?

linux - 什么是最好的 Emacs 工作区插件?

eclipse - Apache Ivy 在 Ant 构建期间使用 Eclipse 工作区解决依赖关系

使用 CPLEX API 进行线性规划时 MATLAB 崩溃

tfs - 如何更改 TFS 中子文件夹的本地路径(不是整个工作区)?

matlab - 在 Matlab 中,是否可以终止脚本,但将其所有内部变量保存到工作区?

eclipse - Maven:m2eclipse:禁用工作区解析导致缺少 Artifact

matlab - 用于元胞数组输出的类似 Blockproc 的函数

matlab - 在 Matlab 中跟踪变量访问模式

Matlab - 创建热图以可视化二维点数据的密度