Main Content

rem

説明

r = rem(a,b)ab で除算した後の剰余を返します。a は被除数、b は除数です。この関数は残余演算と呼ばれ、r = a - b.*fix(a./b) として表現できます。関数 rem は、rem(a,0)NaN になるという規則に従います。

すべて折りたたむ

23 を 5 で除算した後の残余を計算します。

a = 23;
b = 5;
r = rem(a,b)
r = 3

整数ベクトルと除数 3 による除算後の剰余を求めます。

a = 1:5;
b = 3;
r = rem(a,b)
r = 1×5

     1     2     0     1     2

正の値と負の値の両方を含む一連の整数について除算後の剰余を求めます。非ゼロの結果は被除数と同じ符号になります。

a = [-4 -1 7 9];
b = 3;
r = rem(a,b)
r = 1×4

    -1    -1     1     0

除数 2*pi を使用して、複数の角度を除算した後の剰余を求めます。可能な場合、rem は浮動小数点の丸めの影響を補正して、正確な整数の結果を出力するように試みます。

theta = [0.0 3.5 5.9 6.2 9.0 4*pi];
b = 2*pi;
r = rem(theta,b)
r = 1×6

         0    3.5000    5.9000    6.2000    2.7168         0

入力引数

すべて折りたたむ

被除数。スカラー、ベクトル、行列、多次元配列、table、または timetable として指定します。a は任意の数値型の実数値配列でなければなりません。入力 ab は、同じサイズであるか、互換性のあるサイズでなければなりません (たとえば、aMN 列の行列で、b がスカラーまたは 1N 列の行ベクトル)。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

aduration 配列であり b が数値配列である場合、b の値は 1 日を 24 時間とする日数として扱われます。

一方の入力が整数データ型の場合、他方の入力も同じ整数データ型か double のスカラーでなければなりません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char | table | timetable

除数。スカラー、ベクトル、行列、多次元配列、table、または timetable として指定します。b は任意の数値型の実数値配列でなければなりません。入力 ab は、同じサイズであるか、互換性のあるサイズでなければなりません (たとえば、aMN 列の行列で、b がスカラーまたは 1N 列の行ベクトル)。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

bduration 配列であり a が数値配列である場合、a の値は 1 日を 24 時間とする日数として扱われます。

一方の入力が整数データ型の場合、他方の入力も同じ整数データ型か double のスカラーでなければなりません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char | table | timetable

詳細

すべて折りたたむ

mod と rem の違い

除算後の剰余の概念は一意に定義されてはおらず、2 つの関数 modrem はそれぞれ異なる値を計算します。関数 mod は、ゼロまたは除数と同じ符号の結果を生成します。関数 rem は、ゼロまたは被除数と同じ符号の結果を生成します。

その他の違いとして除数がゼロの場合の規則があります。関数 mod は、mod(a,0)a を返す規則に従い、関数 remrem(a,0)NaN を返す規則に従います。

それぞれに適した用途があります。たとえば信号処理では、周期的な信号の処理について関数 mod が役立ちます。この場合出力が周期的で、周期が除数と等しくなるためです。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する

参考