conv
Faltung und polynomiale Multiplikation
Beschreibung
w = conv(
gibt einen Unterabschnitt der Faltung zurück, wie durch u,v
,shape
)shape
angegeben. Beispielsweise gibt conv(u,v,'same')
nur den zentralen Teil der Faltung zurück, mit derselben Größe wie u
, und conv(u,v,'valid')
gibt nur den Teil der Faltung zurück, der ohne die mit Nullen aufgefüllten Kanten berechnet wurde.
Beispiele
Polynomiale Multiplikation per Faltung
Erstellen Sie die Vektoren u
und v
, die die Koeffizienten der Polynome und enthalten.
u = [1 0 1]; v = [2 7];
Verwenden Sie Faltung, um die Polynome zu multiplizieren.
w = conv(u,v)
w = 1×4
2 7 2 7
w
enthält die polynomialen Koeffizienten für .
Vektorfaltung
Erstellen Sie zwei Vektoren und falten Sie diese.
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
Die Länge von w
ist length(u)+length(v)-1
, in diesem Beispiel also 9
.
Zentraler Teil der Faltung
Erstellen Sie zwei Vektoren. Ermitteln Sie den zentralen Teil der Faltung von u
und v
, der dieselbe Größe aufweist wie 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
hat eine Länge von 7
. Die vollständige Faltung hätte eine Länge von length(u)+length(v)-1
, in diesem Beispiel also 10.
Eingabeargumente
u,v
— Eingabevektoren
Vektoren
Eingabevektoren, angegeben als Zeilen- oder Spaltenvektoren. Die Vektoren u
und v
können unterschiedliche Längen oder Datentypen aufweisen.
Wenn u
oder v
den Typ single
aufweisen, weist die Ausgabe den Typ single
auf. Anderenfalls konvertiert conv
Eingaben in den Typ double
und gibt den Typ double
zurück.
Datentypen: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Unterstützung komplexer Zahlen: Ja
shape
— Unterabschnitt der Faltung
'full'
(Standardeinstellung) | 'same'
| 'valid'
Unterabschnitt der Faltung, angegeben als 'full'
, 'same'
oder 'valid'
.
'full' | Vollständige Faltung (Standard). |
'same' | Zentraler Teil der Faltung mit derselben Größe wie |
'valid' | Nur die Teile der Faltung, die ohne die mit Nullen aufgefüllten Kanten berechnet werden. Wenn Sie diese Option verwenden, ist |
Mehr über
Faltung
Die Faltung zweier Vektoren, u
und v
, stellt den Überlappungsbereich unter den Punkten dar, wenn v
durch u
gleitet. Algebraisch ist Faltung dieselbe Operation wie die Multiplikation von Polynomen, deren Koeffizienten die Elemente von u
und v
sind.
Nehmen wir an, dass m = length(u)
und n = length(v)
. Dann ist w
der Vektor mit der Länge m+n-1
, dessen k
. Element
ist.
Die Summe entspricht allen Werten von j
, die zu zulässigen Indexzeichen für u(j)
und v(k-j+1)
führen, insbesondere j
=
max(1,k+1-n):1:min(k,m)
. Wenn m
=
n
, ergibt dies
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)
Erweiterte Fähigkeiten
Tall Arrays
Rechnen mit Arrays, die mehr Zeilen haben, als in den Speicher passen.
Hinweise zur Verwendung und Einschränkungen:
Die Eingaben
u
undv
müssen Spaltenvektoren sein.Wenn
shape
gleich'full'
ist (Standard), kann nur entwederu
oderv
ein Tall-Array sein.Wenn
shape
gleich'same'
oder'valid'
ist, kannv
kein Tall-Array sein.
Weitere Informationen finden Sie unter Tall Arrays.
C/C++ Codegenerierung
Generieren Sie C und C++ Code mit MATLAB® Coder™.
Informationen zu Einschränkungen für die Generierung von C/C++ Code finden Sie unter Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).
GPU-Codegenerierung
Generieren von CUDA® Code für NVIDIA® Grafikprozessoren mit dem GPU Coder™.
Thread-Based Environment
Führen Sie mithilfe von MATLAB® backgroundPool
den Code im Hintergrund aus oder machen Sie den Code mit der Parallel Computing Toolbox™ ThreadPool
schneller.
Diese Funktion bietet vollständige Unterstützung für thread-basierte Umgebungen. Weitere Informationen finden Sie unter Run MATLAB Functions in Thread-Based Environment.
GPU-Arrays
Schnellere Codeausführung durch Ausführen auf einer Grafikkarte (GPU) mit der Parallel Computing Toolbox™.
Diese Funktion bietet vollständige Unterstützung für Grafikkarten-Arrays. Weitere Informationen finden Sie unter Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Verteilte Arrays
Partitionieren von großen Arrays über den kombinierten Speicher Ihres Clusters mit Parallel Computing Toolbox™.
Diese Funktion bietet vollständige Unterstützung für verteilte Arrays. Weitere Informationen finden Sie unter Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Versionsverlauf
Eingeführt vor R2006a
MATLAB-Befehl
Sie haben auf einen Link geklickt, der diesem MATLAB-Befehl entspricht:
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus. Webbrowser unterstützen keine MATLAB-Befehle.
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)