Main Content

Mux

Combine input signals of same data type and complexity into virtual vector

  • Library:
  • Simulink / Commonly Used Blocks

    Simulink / Signal Routing

    HDL Coder / Commonly Used Blocks

    HDL Coder / Signal Routing

  • Mux block

Description

The Mux block combines inputs with the same data type and complexity into a virtual vector. You can use multiple Mux blocks to create a mux signal in stages, but the result is flat as if you used a single Mux block.

Tip

Use a Bus Creator block instead of a Mux block. The Bus Creator block creates virtual buses, which give you the flexibility to group elements of different data types and complexity. Virtual buses also let you access elements by name, instead of by index. If a block requires a virtual vector instead of a virtual bus, model compilation converts the bus to a vector. For a comparison of mux signals and virtual buses, see Choose Among Composite Interfaces.

Ports

Input

expand all

Input signal to include in the mux signal, specified as a scalar or vector.

The input signals for a Mux block can be any combination of scalars and vectors, but they must have the same data type and complexity or be function-call signals.

Data Types: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | image
Complex Number Support: Yes

Output

expand all

Output mux signal composed of the combined input signals, returned as a vector.

The elements of the output mux signal take their order from the port order of the input signals. For a description of the port order for various block orientations, see Port Location After Rotating or Flipping.

Data Types: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | image

Parameters

expand all

The number of input signals, specified as a scalar, vector, cell array, or comma-separated list of signal names. Some of these formats allow you to specify the signal names and sizes, as described by the following table.

FormatBlock Behavior

Scalar

The number of inputs to the Mux block.

When you use this format, the block accepts scalar or vector signals of any size. Simulink® assigns each input the name signalN, where N is the input port number.

Vector

The length of the vector specifies the number of inputs. Each element specifies the size of the corresponding input.

A positive value specifies that the corresponding port can accept only vectors of that size. For example, [2 3] specifies two input ports of sizes 2 and 3, respectively. If an input signal width does not match the expected width, an error message appears. A value of -1 specifies that the corresponding port can accept scalars or vectors of any size.

Cell array

The length of the cell array specifies the number of inputs. The value of each cell specifies the size of the corresponding input.

A scalar value N specifies a vector of size N. A value of -1 means that the corresponding port can accept scalar or vector signals of any size.

Comma-separated list of signal names

A list of signal names separated by commas. Simulink assigns each name to the corresponding port and signal. For example, if you enter position,velocity, the Mux block has two inputs, named position and velocity.

Tip

If you specify a scalar for the Number of inputs parameter and all of the input ports are connected, as you draw a new signal line close to input side of a Mux block, Simulink adds a port and updates the parameter.

Programmatic Use

Block Parameter: Inputs
Type: scalar, vector, cell array, comma-separated list of signal names
Values: integer, vector of port sizes, cell array, comma-separated list of signal names
Default: '2'

Block icon appearance, specified as bar, signal, or none.

  • bar — Displays no text

  • signal — Displays the input signal names

  • none — Displays the type of block (Mux)

Resize the block as necessary to fit the text on the block icon.

Programmatic Use

Block Parameter: DisplayOption
Type: character vector
Values: 'bar' 'signals' 'none''bar'
Default: 'bar'

Block Characteristics

Data Types

Boolean | double | enumerated | fixed point | half | integer | single

Direct Feedthrough

yes

Multidimensional Signals

no

Variable-Size Signals

no

Zero-Crossing Detection

no

Extended Capabilities

PLC Code Generation
Generate Structured Text code using Simulink® PLC Coder™.

Version History

Introduced before R2006a