このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
mod
除算後の剰余 (モジュロ演算)
説明
例
スカラーの除算後の剰余
ベクトルの除算後の剰余
正の値と負の値の除算後の剰余
正の値と負の値の両方を含む一連の整数について除算後の剰余を求めます。除数が正の場合、非ゼロの除算結果は常に正である点に注意してください。
a = [-4 -1 7 9]; m = 3; b = mod(a,m)
b = 1×4
2 2 1 0
負の除数による除算後の剰余
正の値と負の値の両方を含む一連の整数について、負の除数による除算後の剰余を求めます。除数が負の場合、非ゼロの除算結果は常に負である点に注意してください。
a = [-4 -1 7 9]; m = -3; b = mod(a,m)
b = 1×4
-1 -1 -2 0
浮動小数点値の除算後の剰余
2*pi
を除数に使用して、複数の角度の除算後の剰余を求めます。mod
は可能な場合、浮動小数点の丸めの影響を補正して正確な整数の結果を出力しようとする点に注意してください。
theta = [0.0 3.5 5.9 6.2 9.0 4*pi]; m = 2*pi; b = mod(theta,m)
b = 1×6
0 3.5000 5.9000 6.2000 2.7168 0
入力引数
a
— 被除数
スカラー | ベクトル | 行列 | 多次元配列 | table | timetable
被除数。スカラー、ベクトル、行列、多次元配列、table、または timetable として指定します。a
は任意の数値型の実数値配列でなければなりません。入力 a
と m
は、同じサイズであるか、互換性のあるサイズでなければなりません (たとえば、a
が M
行 N
列の行列で、m
がスカラーまたは 1
行 N
列の行ベクトル)。詳細については、基本的な演算で互換性のある配列サイズを参照してください。
a
が duration
配列であり m
が数値配列である場合、m
の値は 1 日を 24 時間とする日数として扱われます。
一方の入力が整数データ型の場合、他方の入力も同じ整数データ型か double
のスカラーでなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| duration
| char
| table
| timetable
m
— 除数
スカラー | ベクトル | 行列 | 多次元配列 | table | timetable
除数。スカラー、ベクトル、行列、多次元配列、table、または timetable として指定します。m
は任意の数値型の実数値配列でなければなりません。入力 a
と m
は、同じサイズであるか、互換性のあるサイズでなければなりません (たとえば、a
が M
行 N
列の行列で、m
がスカラーまたは 1
行 N
列の行ベクトル)。詳細については、基本的な演算で互換性のある配列サイズを参照してください。
m
が duration
配列であり a
が数値配列である場合、a
の値は 1 日を 24 時間とする日数として扱われます。
一方の入力が整数データ型の場合、他方の入力も同じ整数データ型か double
のスカラーでなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| duration
| char
| table
| timetable
詳細
mod と rem の違い
除算後の剰余の概念は一意に定義されてはおらず、2 つの関数 mod
と rem
はそれぞれ異なる値を計算します。関数 mod
は、ゼロまたは除数と同じ符号の結果を生成します。関数 rem
は、ゼロまたは被除数と同じ符号の結果を生成します。
その他の違いとして除数がゼロの場合の規則があります。関数 mod
は、mod(a,0)
がa
を返す規則に従い、関数 rem
は rem(a,0)
が NaN
を返す規則に従います。
それぞれに適した用途があります。たとえば信号処理では、周期的な信号の処理について関数 mod
が役立ちます。この場合出力が周期的で、周期が除数と等しくなるためです。
合同関係
関数 mod
は、合同関係に役立ちます。mod(a,m) == mod(b,m)
の場合に限り、a
と b
は (m を法として) 合同です。たとえば、23 と 13 は 5 を法 (mod 5) として合同です。
参照
[1] Knuth, Donald E. The Art of Computer Programming. Vol. 1. Addison Wesley, 1997 pp.39–40.
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
この関数は tall 配列を完全にサポートしています。詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
算術演算は出力クラスを使用して実行されます。丸め誤差の違いにより、結果が MATLAB® と一致しない場合があります。
いずれかの入力の型が
int64
またはuint64
の場合、両方の入力が同じ型でなければなりません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
64 ビット整数はサポートされません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入R2023a: table および timetable で直接計算を実行
関数 mod
は、table または timetable 内のすべての変数に対して、それらの変数にアクセスするためのインデックス付けを行うことなく計算できます。すべての変数のデータ型で計算がサポートされている必要があります。詳細については、table および timetable での直接計算を参照してください。
参考
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)