使用Armadillo忽略均值和其他统计函数中的NaN

时间:2019-07-14 14:27:16

标签: c++ armadillo

如果矩阵包含NaN个值,则Armadillo将针对包含这些NaN的列/行执行的统计信息返回NaN。即以下代码

arma::mat A = {{1, 2, 3}, {6, 7, 8}, {4, 9, 10}};
A(1,1) = arma::datum::nan;
std::cout << A << "\n";
std::cout << arma::mean(A) << "\n" << arma::mean(A, 1);

将返回

1.0000    2.0000    3.0000
6.0000       nan    8.0000
4.0000    9.0000   10.0000

3.6667      nan   7.0000

2.0000
   nan
7.6667

是否有一种有效的方法来忽略NaN的值,就像MATLAB的nanmean() / mean(-, 'omitnan')一样?

然后,列均值将返回5.5,行均值将返回7,而不是NaN

0 个答案:

没有答案