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格式。
原文地址:https://www.cnblogs.com/yaos/p/14014235.html