MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   在Matlab中对浮点数执行位修改 (https://www.labfans.com/bbs/showthread.php?t=26546)

poster 2019-12-14 20:13

在Matlab中对浮点数执行位修改
 
我正在Matlab中使用非负矩阵分解将矩阵分解为两个因子。使用这个,我从A两个双精度浮点矩阵B和C中得到。

样本结果是

B(1,1) = 0.118 C(1,1) = 112.035 我现在正在尝试修改这些值中的特定位,但是对这两个值使用bitset函数时都会出错,因为bitset需要无符号整数。

我还尝试使用dec2bin函数,该函数假定会将十进制转换为二进制,但对于B(1,1)返回“ 0”。

有谁知道以任何方式处理浮点数而不损失精度?



[B]回答:[/B]

你应该考虑的typecast和bitset功能。 (分别[URL="http://www.mathworks.com/help/matlab/ref/typecast.html"]在此处[/URL]和[URL="http://www.mathworks.com/help/matlab/ref/bitset.html"]此处查看[/URL]文档)。那让你做像

xb = typecast( 1.0, 'uint64' ); xb = bitset( xb, 10, 1 ); typecast( xb, 'double' );

[url=https://stackoverflow.com/questions/5245575]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 14:53

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.