有什么办法可以将uvec变成vec?

时间:2020-05-20 14:24:59

标签: armadillo

想要这样做:

#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?

1 个答案:

答案 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,分配就可以了。