繁体   English   中英

从Matlab表中的所有变量中删除NaN

Remove NaN from all variables in table in Matlab

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个包含许多变量的表,并且某些条目具有NaN 我想将所有NaN都替换为0。我可以用以下形式找到NaN

T = table(rand(200,1),[rand(199,1);NaN],rand(200,1));
Index = varfun(@isnan,T);

但是,当我尝试将索引应用于表时,T:

T(Index)=0;

我收到以下错误:

You can not subscript a table using only one subscript. Table subscripting requires both row and variable subscripts.

是否有一个简单的解决方案,还是我需要将表从表更改为矩阵?

2 个回复

问题似乎在于Index仍然是一个表,并且您始终需要使用rowcolumn作为表的索引。 我尝试了以下代码(没有中间表Index ),并且可以工作,尽管我不确定这是否是最佳解决方案。

[i,j] = ind2sub(size(T),find(isnan(T{:,:})));
T(i,j) = {0};

一种方法是转换为数组,使用逻辑索引进行替换,然后返回表:

T = table(rand(200,1),[rand(199,1);NaN],rand(200,1));
t = table2array(T);
t(isnan(t)) = 0;
T = array2table(t, 'VariableNames', T.Properties.VariableNames);

另外,如果您可以接受的话,请考虑仅使用数组(无需在表之间进行转换)。

2 在MATLAB中从细胞矩阵中删除NaN

我有一个包含数值和NaN的单元格矩阵。 如何删除NaN值并“修剪”矩阵。 例如,我有以下矩阵: 我想删除NaN并调整矩阵的大小以具有此矩阵。 可以做到没有循环吗? (使用向量化) ...

3 如何从Matlab中的字符数组中删除NaN

尝试使用cellfun从Matlab中的字符数组中删除NaN,但是没有运气。 错误消息说:使用cellfun错误输入#2应该是一个单元格数组,而不是char。 我正在尝试从.csv文件读入数据,下面是相关的代码片段: 我需要从cell1中删除NaN,因为在下一步中我将时间转换为秒 ...

4 在Matlab表中添加NaN行

我有一张100 x 19的Table 。 Table的前16列包含字符,后3列包含double变量。 如何在第50行之后插入3个由NaN组成的新行,以使我的表格变成103 x 19? 表格形式 我想要类似的东西(在此示例中,我在第一和第二之间仅添加了一行) ...

7 如何从Matlab的表格中删除特定列中包含NaN的行?

我有一张桌子,类似于这张桌子: 我需要删除在Column1中具有NaN的行。 所有其他行(在其他列中可能有也可能没有NaN)应该保留。 因此,所需的输出应如下所示: 当然,这只是一个简化的示例。 真正的表很大,我一次只能处理一列,这就是为什么我需要有选择地删除特定列中包含N ...

2016-01-22 03:02:28 1 642   matlab
9 删除在熊猫中包含所有Nan的列

我想学习从此DataFrame中删除所有具有NaN的所有列的最佳方法。 在这种情况下,它将删除列Nan1和Nan2。 我觉得有一个很好的方法可以做到这一点! ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM