所以我有一个包含多个表的单元格数组,我正在尝试访问该表的第一个列名。
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}
有没有办法用一行代码执行此操作,有人可以解释错误吗?
答案 0 :(得分:1)
通常这样的问题可以通过函数调用(只是返回输入的虚函数)来解决,或者你可以用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}))