我使用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
类型的特征矩阵中吗?
由于
答案 0 :(得分:0)
当您使用'int'
参数的precision
值向fwrite
写入值时,它会将它们写为4字节整数,因此您的10x10矩阵将占用10x10x4 = 400字节。但是你只分配一个10x10 = 100字节长的缓冲区。