想要这样做:
#include <armadillo>
int main(){
arma::mat mat=arma::randn(5,5);
mat.each_col( [](arma::vec& vec){
vec=arma::sort_index(vec);
} );
return 0;
有什么办法可以将uvec变成vec?
答案 0 :(得分:2)
使用arma::conv_to<DesiredType>::from(value)
。
见下文
#include <armadillo>
int main(){
arma::mat mat=arma::randn(5,5);
mat.print("mat");
mat.each_col( [](arma::vec& vec){
vec = arma::conv_to<arma::vec>::from(arma::sort_index(vec));
} );
mat.print("mat");
return 0;
}
通过此操作,我们可以将arma::sort_index
的输出arma::uvec
转换为arma::vec
,分配就可以了。