将表附加到另一个索引错误

1次观看(过去30天)
嗨,所有
在循环过程中,每次计算第一个表时,我都在向另一个表追加一个表。
这是我得到的错误
加下标不支持使用一个下标(如t(i))或三个或更多下标(如t(i,j,k))转换为表。万博1manbetx始终指定行下标和变量下标,因为在t(行,var)。
运行时间是21.683230秒。
这是我的代码:
fn = cell2table(Tc,“VariableNames”, table_without_header.Properties.VariableNames);
如果f1 = = 1
兜售{1}= (fn);
其他的
Tout{f1} = [Tout{f1-1};fn];
结束
fn是一个9x1表,我认为在第一个循环之后,Tout也变成了一个9x11表,我得到了这个问题。如何解决?

接受的答案

克里斯·拉皮埃尔
克里斯·拉皮埃尔 2020年11月9日
编辑:克里斯·拉皮埃尔 2020年11月9日
这个错误解释了这个问题。你必须指定行和列。试试这个(未经测试):
如果f1 = = 1
兜售{1,}= (fn);
其他的
Tout{f1,:} = [Tout{f1-1,:};fn];
结束
除非这是一个打印错误,否则在列数方面似乎有问题 fn (9 x1) 吹捧 (9 x11)。它们都必须有相同数量的列才能使代码正常工作。
1评论
彼得·珀金斯
彼得·珀金斯 2020年11月20日
这段代码可能会运行(尽管我不认为它会运行),但似乎很难想象这是您想要的。你说“fn是一个9x1的表”,然后“Tout变成一个9x11的表”。那么如何将9x1表存储在另一个表的一行中呢?为什么Tout的每一行显然应该是一个增量增长的表?
这是不对的。
您是否试图将fn的每个新实例存储在单元格数组的单元格中?或者尝试垂直连接所有表?我想如果是后者,你想要更像
兜售=[兜售;fn)
在循环的每一次迭代中,但是 你甚至没有展示任何带有循环的代码。

登录评论。

更多答案(0)

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!