convn
N 次元の畳み込み
説明
例
3 次元の畳み込み
関数 convn
の出力サイズを制御できます。たとえば、'same'
オプションは畳み込みの外側部分をトリミングして、入力と同じサイズの中央部分のみを返します。
2 x 3 x 2 の乱数配列 A
と 2 x 2 x 2 のカーネル B
の畳み込みを計算します。結果は、size(A) + size(B) - 1
から 3 x 4 x 3 の配列になります。
A = rand(2,3,2); B = 0.25*ones(2,2,2); C = convn(A,B)
C = C(:,:,1) = 0.2037 0.2354 0.1898 0.1581 0.4301 0.6902 0.4426 0.1825 0.2264 0.4548 0.2527 0.0244 C(:,:,2) = 0.2733 0.5444 0.4686 0.1975 0.6365 1.3772 1.2052 0.4645 0.3632 0.8327 0.7366 0.2670 C(:,:,3) = 0.0696 0.3090 0.2788 0.0394 0.2063 0.6869 0.7627 0.2821 0.1367 0.3779 0.4839 0.2426
sizeC = size(A) + size(B) - 1
sizeC = 1×3
3 4 3
畳み込みの中央部分を A
と同じサイズで返します。
C = convn(A,B,'same')
C = C(:,:,1) = 1.3772 1.2052 0.4645 0.8327 0.7366 0.2670 C(:,:,2) = 0.6869 0.7627 0.2821 0.3779 0.4839 0.2426
入力引数
A
— 入力配列
ベクトル | 行列 | 多次元配列
入力配列。ベクトル、行列または多次元配列として指定します。
データ型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
複素数のサポート: あり
B
— 2 番目の入力配列
ベクトル | 行列 | 多次元配列
A
との畳み込みを計算する 2 番目の入力配列。ベクトル、行列または多次元配列として指定します。配列 B
は A
と同じサイズである必要はありません。
データ型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
複素数のサポート: あり
shape
— 畳み込みのサブセクション
'full'
(既定値) | 'same'
| 'valid'
畳み込みのサブセクション。次の値のいずれかとして指定します。
'full'
— 完全な N 次元の畳み込みを返します。'same'
— 畳み込みの中央部分をA
と同じサイズで返します。'valid'
— 畳み込みのうち、ゼロが加えられたエッジを含まずに計算された部分のみを返します。
出力引数
C
— N 次元の畳み込み
ベクトル | 行列 | 多次元配列
N 次元の畳み込み。ベクトル、行列または多次元配列として返されます。A
と B
の次元数が同じである場合、完全な畳み込み C = convn(A,B)
のサイズは size(A)+size(B)-1
です。
A
と B
の一方または両方が single
型の場合、出力は single
型になります。それ以外の場合、convn
は入力を double
型に変換して double
型を返します。
データ型: double
| single
詳細
N 次元の畳み込み
N 次元の離散変数 A と B について、次の式は A と B の畳み込みを定義します。
ki は、A と B の添字が適正になるすべての値をとります。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
使用上の注意事項および制限事項:
shape
が'full'
(既定) である場合、入力A
およびB
は空にしてはならず、いずれか 1 つのみを tall 配列にすることができます。shape
が'same'
または'valid'
である場合は、B
を tall 配列にすることはできません。
詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
スレッドベースの環境
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)