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
が single
型である場合、出力は single
型になります。それ以外の場合、conv
は入力を double
型に変換して double
型を返します。
データ型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
複素数のサポート: あり
畳み込みのサブセクション。'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 つのベクトルの直接畳み込みを計算します。
拡張機能
conv
関数は tall 配列をサポートしていますが、以下の使用上の注意および制限があります。
入力
u
とv
は列ベクトルでなければなりません。shape
が'full'
(既定) である場合は、u
またはv
のいずれかのみを tall 配列にすることができます。shape
が'same'
または'valid'
である場合は、v
を tall 配列にすることはできません。
詳細については、tall 配列を参照してください。
使用上の注意および制限:
shape
引数を使用する場合、コード生成時に定数でなければなりません。入力引数
u
とv
では、次のようになります。入力ベクトルは、コード生成時に固定サイズまたは可変長のベクトルとして指定しなければなりません。ベクトルの最初の次元または 2 番目の次元を可変サイズにすることができます。他の次元はすべて固定サイズ 1 でなければなりません。
入力ベクトル
u
とv
は向きが同じでなければなりません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
conv
関数は、GPU 配列を完全にサポートします。GPU 上で関数を実行するには、入力データを gpuArray
(Parallel Computing Toolbox) として指定します。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)