【问题标题】:Is there any way to turn a uvec into vec?有什么办法可以把 uvec 变成 vec?
【发布时间】:2020-05-20 14:24:59
【问题描述】:

想要这样做:

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

【问题讨论】:

    标签: armadillo


    【解决方案1】:

    使用arma::conv_to&lt;DesiredType&gt;::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,这样分配就可以工作了。

    【讨论】:

    • 谢谢朋友!太有用了!
    • 我很乐意提供帮助。如果它完全回答了您的问题,那么您应该接受答案。
    • 对不起,我是新来这里的。。如何接受。。我找到那个按钮了!!
    猜你喜欢
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多