2014-06-08 77 views
0

我想使用eval來更改數據集中的值。它應該以某種方式將每一秒的價值改變爲之前的價值。eval中的matlab索引

短的例子:

A = magic(6) 
ds = mat2dataset(A) % original dataset 

ds.A1(2:2:end) = ds.A1(1:2:end) % dataset after change 

這是我想做到這一點。現在我需要使用函數中前面指定的變量字母和數字。

letter = 'A' 
number = '1' 

eval([strcat('ds.', letter, number)]) % now gives me all values. 

這正是我想索引(1:2:結束)以得到索引值的點。

您是否有一個好主意如何在eval函數中編入索引?如果你願意的話,我也會更喜歡其他的方式。

非常感謝!

回答

2

1)不要使用eval實現動態的字段名:

h=ds.([letter, number]) 

2)雙擊索引是不可能的,你需要兩條線來實現它。

h(1:2:end) 
+0

完美,謝謝! – user3410101