Filter löschen
Filter löschen

How do you add specific elements contained within a matrix to produce a new vector?

1 Ansicht (letzte 30 Tage)

I have the columns of n, x[n], and h[n] already produced. Now what I want to produce is the column w[n]. (Side question: is "column" correct term to be using in this instance? Or is "vertical array" or "vector" more appropriate?)

To avoid wasting your time, I've simplified the structure of w[n] in the little box there on the right-hand side, which reads: "In general, the corresponding element of w[n] meets these criteria: 1. has n+1 "component pairs", and 2. those "components pairs" are such that h[k]*x[m] where k+m=n.

Ex1. n=0. w[0] has one (0+1) "component pair:" h[0]*x[0] where k+m=0. Ex2. n=1. w[1] has two (1+1) "component pairs:" h[0]*x[1]+h[1]*x[0] where each k+m=1=n.

And in case you've now forgotten the question: How do I produce w[n] by manipulating the elements in x[n] and h[n].

Akzeptierte Antwort

Roger Stafford
Roger Stafford am 19 Apr. 2017
Bearbeitet: Roger Stafford am 19 Apr. 2017
That's known as convolution, and you can use matlab's 'conv' function to do the required computation.
w = conv(x,h);
w = w(1:n+1);
Note: Zero indices are not allowed in matlab so the indices shown in your image will have to be increased by one. The first element is w(1) = x(1)*h(1), and the second element would be w(2) = x(1)*h(2)+x(2)*h(1), and so forth.
  5 Kommentare
James Long
James Long am 19 Apr. 2017
i just did wn(42:81)=[]; and it worked. thank you for your assistance Roger and Stephen.
Roger Stafford
Roger Stafford am 19 Apr. 2017
@James: That's what the line "w = w(1:n+1);" was meant to accomplish!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by