Matlab将行添加到具有不同维度的另一个表的表中

时间:2016-06-23 08:07:49

标签: matlab rows

我有一张尺寸为6x2的桌子。我还有其他尺寸为4x1的桌子,我试图将小桌子附加到较大的桌子上,但由于尺寸的不同,我无法做到这一点。你有什么建议可以解决这个问题吗?

代码示例:

id = {'AB';'ZX';'DF4';'CA';'AC';'FG'}
mean = [1.5;2;3;1.15;3.06;1]
table1 = table(id,mean);

id2 = {'ZZ';'ZB';'FG';'4FA'};
table2 = table(id2);
table2.Properties.VariableNames = {'id'};

然后,我将使用前6行的平均值来计算最后4行的平均值。

1 个答案:

答案 0 :(得分:3)

首先,这非常重要:不要将变量称为“均值”,因为这是MATLAB中的平均函数。

我建议你先计算它们,然后再连接表格,但如果你想这样做,它也是可能的。你必须填写一些东西,直到你有实际值

id = {'AB';'ZX';'DF4';'CA';'AC';'FG'};
mean_values = [1.5;2;3;1.15;3.06;1]; %way better than 'mean'
table1 = table(id,mean_values);

id2 = {'ZZ';'ZB';'FG';'4FA'};
table2 = table(id2);
table2.Properties.VariableNames = {'id'};
%add some sort of data like NaN 
table3=[table1;[table2 table(nan(height(table2),1),'Variablenames',{'mean_values'})]];

你也可以使用零或一个或任何其他数字,但它们可能影响你的平均值(平均值)的计算,而NaN则没有:

mean([3 5 nan],'omitnan')

如果你在使用卑鄙的说法时遇到错误'下标索引必须是真正的正整数或逻辑。你必须使用

clear mean

或从工作区手动删除