このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
conv
畳み込みおよび多項式乗算
説明
例
畳み込みによる多項式の乗算
多項式 および の係数を含むベクトル u
および v
を作成します。
u = [1 0 1]; v = [2 7];
畳み込みを使用して多項式の乗算を行います。
w = conv(u,v)
w = 1×4
2 7 2 7
w
に多項式 の係数が格納されています。
ベクトルの畳み込み
2 つのベクトルを作成し、それらの畳み込みを行います。
u = [1 1 1]; v = [1 1 0 0 0 1 1]; w = conv(u,v)
w = 1×9
1 2 2 1 0 1 2 2 1
w
の長さは length(u)+length(v)-1
となり、この例では 9
になります。
畳み込みの中央部分
2 つのベクトルを作成します。u
と v
の畳み込みについて、u
と同じサイズの中央部分を求めます。
u = [-1 2 3 -2 0 1 2];
v = [2 4 -1 1];
w = conv(u,v,'same')
w = 1×7
15 5 -9 7 6 7 -1
w
の長さは 7
です。完全な畳み込みの場合、長さは length(u)+length(v)-1
となり、この例では 10 になります。
入力引数
u,v
— 入力ベクトル
ベクトル
入力ベクトル。行ベクトルまたは列ベクトルのいずれかとして指定します。ベクトル u
と v
の長さやデータ型は同じでなくてもかまいません。
u
または v
が single
型である場合、出力は single
型になります。それ以外の場合、conv
は入力を double
型に変換して double
型を返します。
データ型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
複素数のサポート: あり
shape
— 畳み込みのサブセクション
'full'
(既定値) | 'same'
| 'valid'
畳み込みのサブセクション。'full'
、'same'
、'valid'
のいずれかとして指定します。
'full' | 完全な畳み込み (既定の設定)。 |
'same' | 畳み込みの |
'valid' | 畳み込みのゼロが加えられたエッジを含まずに計算された部分のみ。このオプションを使用すると、 |
詳細
畳み込み
2 つのベクトル u
と v
の畳み込みとは、v
を u
の上に移動したときの点が重なる領域を表します。代数的には、畳み込みは係数が u
と v
の要素である多項式の乗算と同じ演算になります。
m = length(u)
および n = length(v)
とします。このとき、w
は長さが m+n-1
のベクトルで、その k
番目の要素は次のとおりです。
これは、u(j)
および v(k-j+1)
に関して適正な添字となる j
のすべての値にわたる総和で、具体的には j
=
max(1,k+1-n):1:min(k,m)
です。m
=
n
の場合、これは以下のようになります。
w(1) = u(1)*v(1) w(2) = u(1)*v(2)+u(2)*v(1) w(3) = u(1)*v(3)+u(2)*v(2)+u(3)*v(1) ... w(n) = u(1)*v(n)+u(2)*v(n-1)+ ... +u(n)*v(1) ... w(2*n-1) = u(n)*v(n)
この定義を使用して、conv
は FFT ベースの畳み込みではなく、2 つのベクトルの直接畳み込みを計算します。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
使用上の注意事項および制限事項:
入力
u
とv
は列ベクトルでなければなりません。shape
が'full'
(既定) である場合は、u
またはv
のいずれかのみを tall 配列にすることができます。shape
が'same'
または'valid'
である場合は、v
を tall 配列にすることはできません。
詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
C/C++ コード生成の制限事項の詳細については、ツールボックス関数のコード生成に対する可変サイズの制限 (MATLAB Coder)を参照してください。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
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)