mod 関数が意図しない剰余を出力するのはなぜですか?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 20 Jun. 2021
Bearbeitet: MathWorks Support Team
am 29 Jul. 2021
mod 関数に負の入力を与えると、思っていた結果と異なる結果が出力されます。
例えば、以下の場合、-10 が出力されることを期待しましたが、90 が出力されています。
>> mod(-10,100)
ans =
90
これは、Simulink の MOD ブックも同じ結果です。
Akzeptierte Antwort
MathWorks Support Team
am 29 Jul. 2021
Bearbeitet: MathWorks Support Team
am 29 Jul. 2021
mod 関数の場合、b = mod(a,m) のとき、b = a - m.*floor(a./m)という式に基づき、かつ「ゼロまたは除数と同じ符号の結果を生成する」という仕様に従います。
その他のMATLAB の剰余を計算する関数としては、rem 関数があります。
この場合は、
b = rem(a,m) のとき、b = a - m.*fix(a./m)
という式に基づき、かつ「ゼロまたは被除数と同じ符号の結果を生成する」という仕様に従います。
>> rem(-10,100)
ans =
-10
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 整数論 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!