遇到一些问题暂作记录
matlab程序:
clear
fid3 = fopen('test.dat','wb');
X = linspace(1.1,5.1,5);
if(fid3>0)
count=fwrite(fid3,X,'float');
end
fclose(fid3);
qt:
QFile file("E:/MATLABmaker/matlabToDll/music/test.dat");
if(file.open(QIODevice::ReadOnly))
{
QDataStream stream(&file);
stream.setByteOrder(QDataStream::LittleEndian);
stream.setFloatingPointPrecision(QDataStream::SinglePrecision);
double f_temp;
for(int m = 0;m < 5;m ++)
{
stream>>f_temp;
qDebug()<<f_temp;
}
}
else{
qDebug()<<"failed";
}
file.close();
遇到一些很有意思的问题,matlab的fopen中的参数'b'我最开始以为指的是二进制中的'bit'的缩写,但看了文档应该是big大端模式的缩写,但问题是Qt中用QDataStream读取时要设置为小端模式才能读出来,我就觉得很奇怪,先记录一下,留作以后探讨