Matlab Fieldnames索引

时间:2014-08-26 13:49:12

标签: matlab indexing field-names

所以我有一个包含多个表的单元格数组,我正在尝试访问该表的第一个列名。

c={'table1', 'table2', 'table3'}

以下两行都给出了错误:

fieldnames(c{1})(1) 
fieldnames(c{1}){1}

Error: ()-indexing must appear last in an index expression.

但是,如果我遵循,它的确有效:

fn=fieldnames(c{1})
fn{1}

有没有办法用一行代码执行此操作,有人可以解释错误吗?

2 个答案:

答案 0 :(得分:1)

See this question

通常这样的问题可以通过函数调用(只是返回输入的虚函数)来解决,或者你可以用subsref的显式调用替换fn {}:

subsref(fieldnames(c{1}),substruct('{}',{1}));

关于错误发生原因的问题 - maybe this link could help

答案 1 :(得分:1)

我假设以下代码重现了您的数据结构:

col1 = [1; 2; 3];
col2 = [4; 5; 6];
t1 = table(col1, col2);
t2 = table(col1, col2);
t3 = table(col1, col2);
c = {t1, t2, t3};

如果是这种情况,那么这应该有效:

subsref(fieldnames(c{1}),substruct('{}',{1}))