在matlab表中添加NaN行

时间:2016-03-23 14:22:45

标签: matlab nan

我的height是100 x 19。

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

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

表格的格式为

Table

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

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

2 个答案:

答案 0 :(得分:4)

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

在你的情况下

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

此外,根据@ Dan的评论,您似乎也可以

T{51:53,:} = NaN

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

答案 1 :(得分:2)

假设所有数据都是数字,那么

% 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;

如果所有数据都不是数字,那么它有点困难,但总体思路仍然存在。