用MATLAB套接字读取浮点数

时间:2016-06-20 03:11:41

标签: c matlab sockets

任何人都可以告诉我为什么我的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

1 个答案:

答案 0 :(得分:0)

通过删除swapbytes调用而不是使用:

解决了这个问题
t.ByteOrder = 'littleEndian';

我不知道为什么。