问题
我要把matlab代码转为c++
有一个dat文件,用matlab读取的代码为
fid=fopen(file,‘r’,‘ieee-be’);
c=fread(fid,‘float’);
c=reshape(c,H,W);
如何才可以用c++读取呢?
我试了方法:
char temp[sizeof(float)];
file.read(temp,sizeof(float));
读出来的数不对 挠头
====== 更新!!!我搞出来了!!!!====
话不多说直接贴代码
std::string file_path;
cin >> file_path;
float tem0;
char Temp[sizeof(float)]
ifstream in;
in.open(file_path.c_str(),std::ios::binary) //用二进制读取
for(int i=0;i<HW;i++)//HW 就是这个文件里一共有多少个数
{
in.read(Temp,4);
std::swap(Temp[0],Temp[3]);
std::swap(Temp[0],Temp[3]); //这里就是交换字节顺序 matlab里面的ieee 读取是大端序,得改成小端序
temp = to_float(Temp); // 这里是我自己写的函数,把字符串转为float
DEM(H,M) = temp;
}
我写的比较简单,大概就是这意思,有什么不懂的可以评论