任何人都可以告诉我为什么我的MATLAB代码正确地读取双打,但不是浮点数吗?
Linux c服务器代码:
double x = 25.2575;
write(sd, &x, sizeof(x));
MATLAB客户端代码
t = tcpip('10.5.5.7', 50505, 'NetworkRole', 'client');
t.InputBufferSize = 8;
fopen(t);
data = swapbytes(fread(t, 1, 'double'));
MATLAB正确读入25.2575
Linuc c服务器代码
float x = 25.2575;
write(sd, &x, sizeof(x));
MATLAB客户端代码
t = tcpip('10.5.5.7', 50505, 'NetworkRole', 'client');
t.InputBufferSize = 4;
fopen(t);
data = swapbytes(fread(t, 1, 'float'));
MATLAB错误地读入6.850875536870000e-313
答案 0 :(得分:0)
通过删除swapbytes调用而不是使用:
解决了这个问题t.ByteOrder = 'littleEndian';
我不知道为什么。