ada*_*non 2 matlab type-conversion
假设我在Matlab中具有以下单精度浮点数
a = single(-2.345)
Run Code Online (Sandbox Code Playgroud)
我想将其表示为遵循IEEE 754的4个字节的数组。正确的表示应为
b = [123, 20, 22, 192]
Run Code Online (Sandbox Code Playgroud)
目前,我正在使用fread并fwrite进行转换,例如
fid = fopen('test.dat','wb')
fwrite(fid,a,'float')
fclose(fid)
fid = fopen('test.dat','rb');
b = fread(fid)'
Run Code Online (Sandbox Code Playgroud)
足够好了,但是我怀疑有一种更轻松,更快捷的方式来进行转换,而无需从文件中进行读取/写入。
关于将字节数组转换为浮点数的文章已经很多了(例如here),但是我不确定如何朝相反的方向前进。有什么建议么?
您可以使用该typecast函数在数据类型之间进行转换,而无需更改基础数据,即使用另一种类型重新解释数据。在您的情况下,您将需要从转换single为uint8(字节)数据类型。这是通过
a = single(-2.345);
typecast(a,'uint8')
ans =
123 20 22 192
Run Code Online (Sandbox Code Playgroud)
按要求。