Main Content

Matrices, Vectors, and Scalars

Simulink® supports matrix signals, one-dimensional arrays, sample-based processing, and frame-based processing. This section describes how Communications Toolbox™ processes certain kinds of matrices and signals.

This documentation uses the unqualified words scalar and vector in ways that emphasize a signal's number of elements, not its strict dimension properties:

  • A scalar signal contains a single element. The signal could be a one-dimensional array with one element, or a matrix of size 1-by-1.

  • A vector signal contains one or more elements, arranged in a series. The signal could be a one-dimensional array, a matrix that has exactly one column, or a matrix that has exactly one row. The number of elements in a vector is called its length or, sometimes, its width.

In cases when it is important for a description or schematic to distinguish among different types of scalar signals or different types of vector signals, this document mentions the distinctions explicitly. For example, the terms one-dimensional array, column vector, and row vector distinguish among three types of vector signals.

The size of a matrix is the pair of numbers that indicate how many rows and columns the matrix has. The orientation of a two-dimensional vector is its status as either a row vector or column vector. A one-dimensional array has no orientation – this is sometimes called an unoriented vector.

A matrix signal that has more than one row and more than one column is called a full matrix signal.

Processing Rules

The following rules indicate how the blocks in the Communications Toolbox process scalar, vector, and matrix signals.

  • In their numerical computations, blocks that process scalars do not distinguish between one-dimensional scalars and one-by-one matrices. If the block produces a scalar output from a scalar input, the block preserves dimension.

  • For vector input signals:

    • The numerical computations do not distinguish between one-dimensional arrays and M-by-1 matrices.

    • Most blocks do not process row vectors and do not support multichannel functionality.

    • The block output preserves dimension and orientation.

    • The block treats elements of the input vector as a collection that arises naturally from the block's operation (for example, a collection of symbols that jointly represent a codeword) or as successive samples from a single time series.

  • Most blocks do not process matrix signals that have more than one row and more than one column. For blocks that do, a signal in the shape of an N-by-M matrix represents a series of N successive samples from M channels. An Input processing parameter on the block determines whether each element or column of the input signal is a channel.

  • Some blocks, such as the digital baseband modulation blocks, can produce multiple output values for each value of a scalar input signal. A Rate options parameter on the block determines if the additional samples are output by increasing the rate of the output signal or by increasing the size of the output signal.

  • Blocks that process continuous-time signals do not process frame-based inputs. Such blocks include the analog phase-locked loop blocks.

To learn which blocks processes scalar signals, vector signals, or matrices, refer to each block's individual Help page.