我已经阅读了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(..)”之类的方法来转换它。