2012-04-02 95 views
9

我需要将实验数据加载到scicoslab,这是一个(设计相当糟糕)的克隆scilab恰好支持图形建模。网络上的文档很差,但它合理地类似于scilab八度通过字符串名称访问变量

我需要处理的数据包含在一定数量的文本文件中: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这将让我的字符串来访问内部符号表。

你知不知道是否存在类似的功能?

注:

  1. 有没有,如果你的文件是ASCII格式重写此行为方式;
  2. 在这个阶段,我也可以使用八度(不涉及图形建模),尽管它的行为方式相同。

回答

9
>> foo = 3.14; name = 'foo'; eval(name) 

foo = 

    3.1400 

在MATLAB上述工作,并Scilab的的文件说,它也有一个eval功能。不知道我是否正确理解你。

+0

确认下八度合作,并scicoslab – Dacav 2012-04-02 12:49:16

9

@ arne.b有一个很好的答案。

你的情况,你也可以做,在MATLAB:

a=load('filename.mat') 
x=a.('variable_name') 
+1

只想说(从编程背景的人在那里'的eval()'被认为是邪恶) 感谢您指出了这一点;我不知道这个语法存在! – miken32 2015-07-09 17:23:05

+0

@ miken32'eval'确实是邪恶的。 – Oli 2015-07-15 04:58:33