convn
N 次元の畳み込み
説明
例
関数 convn
の出力サイズを制御できます。たとえば、'same'
オプションは畳み込みの外側部分をトリミングして、入力と同じサイズの中央部分のみを返します。
2×3×2 の乱数配列 A
と 2×2×2 のカーネル B
の畳み込みを計算します。結果は、size(A) + size(B) - 1
から 3×4×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
入力引数
入力配列。ベクトル、行列または多次元配列として指定します。
データ型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
複素数のサポート: あり
A
との畳み込みを計算する 2 番目の入力配列。ベクトル、行列または多次元配列として指定します。配列 B
は A
と同じサイズである必要はありません。
データ型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
複素数のサポート: あり
畳み込みのサブセクション。次の値のいずれかとして指定します。
'full'
— 完全な N 次元の畳み込みを返します。'same'
— 畳み込みの中央部分をA
と同じサイズで返します。'valid'
— 畳み込みのうち、ゼロが加えられたエッジを含まずに計算された部分のみを返します。
出力引数
N 次元の畳み込み。ベクトル、行列または多次元配列として返されます。A
と B
の次元数が同じである場合、完全な畳み込み C = convn(A,B)
のサイズは size(A)+size(B)-1
です。
A
と B
の一方または両方が single
型の場合、出力は single
型になります。それ以外の場合、convn
は入力を double
型に変換して double
型を返します。
データ型: double
| single
詳細
N 次元の離散配列 A と B について、次の式は A と B の畳み込みを定義します。
ki は、A と B の添字が適正になるすべての値をとります。
この定義を使用して、convn
は FFT ベースの畳み込みではなく、2 つの N 次元配列の直接畳み込みを計算します。
拡張機能
convn
関数は tall 配列をサポートしていますが、以下の使用上の注意および制限があります。
shape
が'full'
(既定) である場合、入力A
およびB
は空にしてはならず、いずれか 1 つのみを tall 配列にすることができます。shape
が'same'
または'valid'
である場合は、B
を tall 配列にすることはできません。
詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
convn
関数は、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)