オーバーフローした値を飽和させずにラップさせる
Afficher commentaires plus anciens
お世話になります。
数値を加算した結果がオーバーフローした場合、
MATLABでは最近値に飽和するかと存じます。
これを飽和ではなくラップさせる方法はありますでしょうか。
現在は以下の様に対処しているのですが、下記例ですとuint32の範囲を超えた場合には
機能しないため、多数のデータの処理には使用できません。
%uint8のデータを加算する場合
a = uint8(100);
b = uint8(200);
c = a + b %255で飽和してしまう。ラップして44にしたい。
%現在の対策
x = uint32(a);%あらかじめuint32にして加算
y = uint32(b);
z = x+y; %300
z_arr = typecast(z, 'uint8'); %[44 1 0 0]
z_arr(1) %44
以上よろしくお願いいたします。
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur MATLAB での固定小数点オブジェクトの作成 dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!