我在Matlab中使用非负矩阵分解将矩阵分解为两个因子利用这个,我得到了两个双精度浮点矩阵,B和C。
样本结果如下
B(1,1) = 0.118
C(1,1) = 112.035
我现在正试图修改这些值中的特定位,但是对任何一个值使用位集函数都会得到一个错误,因为位集需要无符号整数。
我也试过使用dec2bin函数,我假设它会将小数转换为二进制,但它会为B(1,1)返回“0”。
有没有人知道如何在比特级处理浮点而不损失精度?
最佳答案
您应该查看typecast
和bitset
函数(Dochere和here)你可以做一些像
xb = typecast( 1.0, 'uint64' );
xb = bitset( xb, 10, 1 );
typecast( xb, 'double' );