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= \n"<<x<<std::endl;
	std::cout<<"A= \n"<<A<<std::endl;

	arma::vec v(10); v={1,2};
	std::cout<<"v= \n"<<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: \n"<<ss<<std::endl;

	return 0;
}
  • test_mat.load(name, arma::raw_ascii)读入的是ASCII文件格式,需要在MATLAB中用dlmwrite保存数据,而不是直接保存成.mat格式。
posted @ 2019-03-10 18:47  2021年的顺遂平安君  阅读(752)  评论(0编辑  收藏  举报