在matlab表中添加NaN行



我有一个Table,它是100 x 19。

表的前16列包含字符,后3列包含双变量。

如何在第50行之后插入由NaN组成的3个新行,使我的表变为103 x 19?

表格采用格式

Subject Sex Age .... .... ... .. Var1 Var2 Var3
1       M   38                     88 89   99 
2       F   34  ..... .... .. ...  34 34   34

我想要类似的东西(在这个例子中,我只在第一行和第二行之间添加了一行)

Subject Sex Age .... .... ... .. Var1 Var2 Var3
1       M   38                     88 89   99 
1       M   38 ..... .... .. . .   NaN NaN NaN
2       F   34  ..... .... .. ...  34 34   34

您可以使用nan()函数创建NaN值,然后将它们作为新数据附加到表中。您需要新数据是一个具有相同变量名的表。我在这里假设它们都是数字。

在您的情况下

T=[T; array2table(nan(3,8),'variablenames',T.Properties.VariableNames)];

此外,根据@Dan的评论,你似乎也可以进行

T{51:53,:} = NaN

同样,如果所有值都是数字类型。

假设所有数据都是数字,则

% Create an example table
>> tbl = table((1:100)',(101:200)');
% Append rows
>> tbl{end+1:end+3,:} = nan;
% Move rows
>> tbl{53:end,:} = tbl{50:100,:};
% Insert nans
>> tbl{50:52,:} = nan;

如果所有的数据都不是数字的,那就有点困难了,但总体思路仍然成立。

最新更新