我应该如何在armadillo中使用var()函数?
我有一个矩阵,其中行是变量/要素和列观察/实例。
我获取每行的方差,以便我可以确定具有最大方差的变量/特征。
目前我在打电话:
auto variances = arma::var(data, 0, 1);
data
是我的矩阵。
据我所知,我现在得到一个矩阵?文档表明这是正确的。我希望能够找回每个矩阵行的方差分数的单个向量。
我可以遍历我的行并单独获取每行的方差,如下所示:
for (auto i = 0; i < data.n_rows; ++i)
auto rowVariance = arma::var(dataSet.data.row(i));
但我不想这样做。
我想找回包含矩阵中每行的方差值的单个向量,然后在此向量上使用arma :: sort_index()来获取与排序差异对应的有序索引集。
提前致谢。
答案 0 :(得分:0)
原来错误是因为我使用的是arma::var variances = arma::var(data, 0, 1)
而应该使用arma::Col<T> variances = arma::var(data, 0, 1)
,因为我的数据矩阵属于arma::Mat<T>
类型,因为我允许浮点和双点只有精确度。
以上评论来自vagoberto让我走上正轨。