有啥办法可以把 uvec 变成 vec?

Posted

技术标签:

【中文标题】有啥办法可以把 uvec 变成 vec?【英文标题】: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?

【问题讨论】:

【参考方案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,这样分配就可以工作了。

【讨论】:

谢谢朋友!太有用了! 我很乐意提供帮助。如果它完全回答了您的问题,那么您应该接受答案。 对不起,我是新来这里的。。如何接受。。我找到那个按钮了!!

以上是关于有啥办法可以把 uvec 变成 vec?的主要内容,如果未能解决你的问题,请参考以下文章