【发布时间】:2015-04-30 03:12:00
【问题描述】:
假设我可以访问使用load 函数创建的结构:
structWithVariables = load('data.mat');
我想将此结构中的所有变量加载到工作区中,但是如果不对所有变量的名称进行硬编码,我找不到任何方法。
注意:我无权访问 .mat 文件,也无权加载结构体的代码,我真的只有结构体。
注意 2:我想这样做的原因只是为了使用一些引用变量的代码,就好像它们在工作区中一样。我不想更改代码。
【问题讨论】:
-
我在论坛上看到有人说你可以使用 EVAL 做到这一点,但我不知道如何。
-
见stackoverflow.com/questions/1823668/…。编写一个小函数,使用
fieldnames和assignin将它们分配到您的工作区。 -
很高兴知道,但也很遗憾 Matlab 不支持这个!
-
仅供参考,现在 Mathworks 不鼓励使用
eval来支持动态字段名(如 Andrew 的回答中所使用的)blogs.mathworks.com/loren/2005/12/13/…
标签: matlab