在eval中进行matlab索引

时间:2014-06-08 19:10:01

标签: matlab indexing eval

我想使用eval更改数据集中的值。它应该以某种方式将每一个值改变为之前的值。

简短的例子:

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:end)以获得索引值的点。

你们其中一个人是否知道如何在eval函数中编入索引?如果你有的话,我也会更喜欢其他方式。

非常感谢!

1 个答案:

答案 0 :(得分:2)

1)不要使用eval来实现动态字段名:

h=ds.([letter, number])

2)双重索引是不可能的,你需要两行来实现它。

h(1:2:end)