我有十進制數字矩陣,我知道我可以將它們轉換使用此代碼二進制文件:(IEEE 754雙精度二進制)生成隨機數字在特定的二進制範圍
m = reshape(dec2bin(typecast(b(:),'uint8'),8).',1,[]);
b_recovered = reshape(typecast(uint8(bin2dec(reshape(m,8,[]).')),'double'),size(b));
使用此代碼,我認爲最後8位是最重要的位。 我想生成隨機十進制數並將這些元素替換爲8,最後一個位在替換爲生成的隨機數後不會改變。我需要有一個新的號碼,同時保留最後8位。
例如:
b=-1.12;
m=1110110001010001101110000001111010000101111010111111000110111111;
改爲:
m=0000110000000000001110000000011010000001100010000010000110111111;
等於:
b=-1.337678432804527e-04
我知道我可以在兩個號碼,但之間產生隨機小數我不知道如何解決上述問題。
mymatrix(1:q,:)= value2 + (value2-value1).*rand(q,size(y_blk,2));
你究竟想在這裏實現什麼?將數字從十進制轉換爲二進制數,更改前56位,然後將其轉換回十進制?似乎有一個快捷方式,取決於您期望的最終結果... – Wolfie
生成0到255(8位)之間的整數並將其轉換爲二進制。 – mpaskov
@mpaskov不是那麼簡單... 8最後一位不等於0-255 – Hanna