2012-04-02 93 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