MATLAB 和 armadillo 数据转换

Posted yaos

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB 和 armadillo 数据转换相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<armadillo>

int D=5;
int M=4;

int main()
{
    arma::fmat x; x.randn(D,1);
    arma::fmat A; A.randn(M,D);
    std::cout<<"x= 
"<<x<<std::endl;
    std::cout<<"A= 
"<<A<<std::endl;

    arma::vec v(10); v={1,2};
    std::cout<<"v= 
"<<v<<std::endl;

    //load mat binary file

    // std::string name="test_mat.dat";
    // arma::mat test_mat;test_mat.load(name, arma::raw_binary);
    // test_mat.print("test_mat");

    //load mat ascii file
    std::string name="matlab_data.dat";
    arma::mat test_mat;
    test_mat.load(name, arma::raw_ascii);
    test_mat.print("test_mat");
    test_mat(0,0)=0.123456789;
    test_mat.raw_print("test_mat");
    auto a_number = 0.12345678987654321;
    std::cout << a_number << std::endl;
    std::streamsize ss = std::cout.precision();
    std::cout << "Default std::cout precision: 
"<<ss<<std::endl;

    return 0;
}
  • test_mat.load(name, arma::raw_ascii)读入的是ASCII文件格式,需要在MATLAB中用dlmwrite保存数据,而不是直接保存成.mat格式。

以上是关于MATLAB 和 armadillo 数据转换的主要内容,如果未能解决你的问题,请参考以下文章

在matlab中使用mex + armadillo时pinv返回svd失败

MATLAB 操作的 Armadillo 等价物

Ubuntu21.10下安装使用Armadillo库

Ubuntu21.10下安装使用Armadillo库

犰狳的求解(A,b)从 Matlab,Eigen 返回不同的答案

(Rcpp, armadillo) 将 arma::vec 转换为 arma::mat