The central data construct in the MATLAB^{®} environment is
the *numeric array*, an ordered collection of real
or complex numeric data with two or more dimensions. The basic data
objects of signal processing (one-dimensional signals or sequences,
multichannel signals, and two-dimensional signals) are all naturally
suited to array representation.

MATLAB represents ordinary one-dimensional sampled
data signals, or sequences, as *vectors*.
Vectors are 1-by-*n* or *n*-by-1
arrays, where *n* is the number of samples in the
sequence. One way to introduce a sequence is to enter it as a list
of elements at the command prompt. The statement

x = [4 3 7 -9 1];

creates a simple five-element real sequence in a row vector. Transposition turns the sequence into a column vector

x = x';

x = 4 3 7 -9 1

Column orientation is preferable for single channel signals
because it extends naturally to the multichannel case. For multichannel
data, each column of a matrix represents one channel. Each row of
such a matrix then corresponds to a sample point. A three-channel
signal that consists of `x`

, `2x`

,
and `x`

/*π* is

y = [x 2*x x/pi]

y = 4.0000 8.0000 1.2732 3.0000 6.0000 0.9549 7.0000 14.0000 2.2282 -9.0000 -18.0000 -2.8648 1.0000 2.0000 0.3183

If the sequence has complex-valued elements, the transpose operator
takes the conjugate of the sequence elements. To transform a complex-valued
row vector into a column vector without taking conjugates, use the `.'`

or
non-conjugate transpose:

x = [1-i 3+i 2+3*i 4-2*i]; % 1-by-4 vector x = x.'; % 4-by-1 vector

Was this topic helpful?