所以我有一个包含多个表的单元格数组,并且我正在尝试访问表的第一个列名。
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}
有没有办法用一行代码做到这一点?有人能解释一下错误吗?
请参阅此问题。
一般来说,这些问题可以使用函数调用(或者是只返回输入的伪函数)来解决,也可以用对subsref
:的显式调用来替换fn{}
subsref(fieldnames(c{1}),substruct('{}',{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}))