我需要将实验数据加载到 scicoslab 中,scicoslab 是 scilab 的一个(设计非常糟糕的)clone 分支,它恰好支持图形建模。网络上的文档很差,但它与 scilab 和 octave 相当相似。
我需要处理的数据包含在一定数量的文本文件中:Data_005
, Data_010
, …, Data_100
。它们中的每一个都可以使用 loadmatfile
命令的 -ascii 标志加载。
问题来自于 loadmatfile("foo", "-ascii")
将文件 foo.mat
加载到名为 foo< 的变量中
。为了循环处理数据文件,我需要执行以下操作:
for i = [5:5:100]
name = sprintf("Data_%02d", i);
loadmatfile(name, "-ascii");
x = read_var_from_name(name);
do_something(x);
end
我在其中搜索的是一个内置的 read_var_from_name
,它允许我通过字符串访问内部符号表。
不知道有没有类似的功能?
注意事项:
- 如果您的文件是 ascii 格式,则无法覆盖此行为;
- 在这个阶段我也可以使用 Octave(不涉及图形建模),尽管它的行为方式相同。
最佳答案
>> foo = 3.14; name = 'foo'; eval(name)
foo =
3.1400
上面的代码在 MATLAB 中有效,Scilab 的文档说它还有一个 eval
函数。不过不确定我是否理解正确。
关于matlab - 通过字符串名称访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9975469/