gpt4 book ai didi

c - 使用 MATLAB 套接字读取 float

转载 作者:行者123 更新时间:2023-11-30 16:59:54 25 4
gpt4 key购买 nike

谁能告诉我为什么我的 MATLAB 代码可以正确读取 double ,但不能正确读取 float ?

这按预期工作:

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

最佳答案

通过删除 swapbytes 调用并改用以下方法解决了该问题:

t.ByteOrder = 'littleEndian';

但是我不知道为什么。

关于c - 使用 MATLAB 套接字读取 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37914130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com