オーバーフローした値を飽和させずにラップさせる
Mostrar comentarios más antiguos
お世話になります。
数値を加算した結果がオーバーフローした場合、
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
以上よろしくお願いいたします。
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre MATLAB での固定小数点オブジェクトの作成 en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!