如果矩阵包含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
。