MATLAB是否支持float16操作? 如果是这样,如何转换双矩阵float16? 我在一个大矩阵做算术运算,其中16位浮点表示足够用于我的表现。 由双数据类型表示需要4倍以上的存储器。
Answer 1:
是您的矩阵满了吗? 否则,请尝试sparse
-节省了大量的内存,如果有大量的零值元素。
据我所知, float16
不支持。 最低您可以去float
-datatype是single
,这是一个32-bit数据类型:
A = single( rand(50) );
您可以通过恒定的繁殖和转换为int16
,但你会失去精度。
Answer 2:
数字类,Matlab的支持开箱即用的有以下几种:
int8
int16
int32
int64
uint8
uint16
uint32
uint64
single (32-bit float)
double (64-bit float)
加复杂的数据类型。 因此,没有16位的花车,很遗憾。
关于The MathWorks的文件交换,似乎有一个半精度浮点库 。 它需要MEX,但是。
Answer 3:
这可能是一个老问题,但我发现它在寻找一个类似的问题(在MATLAB半精度)。
事情似乎在时间上发生了变化: https://www.mathworks.com/help/fixedpoint/ref/half.html
半精度似乎是通过MATLAB现在支持nativeley。
文章来源: is float16 supported in matlab?