如何在matlab中通过tcpip传输二进制数据

时间:2016-11-10 17:27:35

标签: matlab tcp fread

我已经阅读了Matlab提供的示例。我的代码是

客户端:

data = single(1024);
t = tcpip('127.0.0.1', 2688, 'NetworkRole', 'Client');
set(t,'Terminator','');
fopen(t);
pause(0.1)
fwrite(t, data, 'float32');
fclose(t);

服务器:

t = tcpip('0.0.0.0', 2688, 'NetworkRole', 'Server');
set(t,'inputbuffersize',4096);
set(t,'Terminator','');

fopen(t);
while t.BytesAvailable==0
    pause(0.1);
    disp('no data');
end
data = fread(t, 1,'float32')
whos data

输出

data =

        1024

Name      Size            Bytes  Class     Attributes

data      1x1                 8  double            

似乎数据的值正确但类型不正确。 fread的文档说:

 ...By default, numeric values are returned in double-precision arrays...

我只是想问一下是否有任何有效的方法可以将返回数组的类型更改为其真实类型,而不是使用“single(..)”之类的方法来转换它。

0 个答案:

没有答案