将Matlab中的矩阵保存到bin文件中,然后用c ++读取

时间:2014-12-04 05:33:02

标签: c++ matlab matrix binaryfiles eigen

我使用fwrite将Matlab中的整数10x10矩阵I保存到二进制文件中:

fid = fopen('True.bin' , 'w');
fwrite(fid , I , 'int');
fclose(fid)

现在,当我尝试使用fstream库在C ++中打开它时,它会返回错误。 C ++代码如下:

int IMG_SIZE = 10;
char * buffer;
long size = IMG_SIZE * IMG_SIZE;
ifstream file ("True.bin", ios::in|ios::binary|ios::ate);
buffer = new char [size];
file.read (buffer, size);
file.close();

知道如何将文件加载到数组或MatrixXi类型的特征矩阵中吗?

由于

1 个答案:

答案 0 :(得分:0)

当您使用'int'参数的precision值向fwrite写入值时,它会将它们写为4字节整数,因此您的10x10矩阵将占用10x10x4 = 400字节。但是你只分配一个10x10 = 100字节长的缓冲区。