MATLAB Examples

The sldemo_fuelsys model uses a Multiport Switch block in the fuel_rate_control/fuel_calc/feedforward_fuel_rate subsystem. This block uses the enumerated type sld_FuelModes to

Perform element-wise (.*) division of two inputs using the Divide block. In this example, the Divide block divides two scalars, a vector by a scalar, a scalar by a vector, and two matrices.

A model using the Squeeze block to eliminate a dimension of size 1.

Consider a point mass m suspended by a massless rod of length l under the influence of gravity. The position of the mass can be expressed in in Cartesian coordinates by (x,y).

The effect of the Dead Zone block on a sine wave. The model uses a dead zone lower limit of -0.5 and an upper limit as 0.5. Set these values through the parameters Start of Dead Zone and End of Dead

Two Selector blocks with the same kind of input signals, but two different Index Option settings.

Use the Find block to find nonzero elements in an array. In the following model, the block is configured to output both the one-based linear index and the value of each nonzero element.

Track the running minimum value of a signal generated by the Chirp Signal block.

Specify the Number of bits in the Counter Free-Running block as an unsigned integer expression.

Use the Detect Increase Block to detect increasing signal values. Because the Initial condition is set to -1, the block detects an increasing signal value starting at time t=0. If you change

The sf_aircontrol model uses a Multiport Switch block in the Physical Plant subsystem. This block uses zero-based indexing for contiguous ordering of three data ports.

Perform element-wise complex division using the Product of Elements block.

Models control of a system that consists of two masses attached on either side of a spring. A control loop damps the oscillation of the spring that results when an external force acts on the

Calculate the difference in a sine wave signal at each time step. The input is a 1-by-2 vector of sine waves, with amplitude 1 and 3. The difference block calculates the difference in each sine

Read 1-D signals from the MATLAB workspace. When you open the model, the following code is executed by a PreLoadFcn callback:

Copyright 2015 The MathWorks, Inc.Published with MATLAB® R2018a MATLAB and Simulink are registered trademarks of The MathWorks, Inc. Please see www.mathworks.com/trademarks for a list

The sf_semantics_hotel_checkin model uses a Multiport Switch block. This block uses one-based indexing for contiguous ordering of three data ports.

Use a Multiport Switch block that specifies noncontiguous integer values for data ports. The values of the indices are visible on the data port labels. You do not have to open the block dialog

A Merge block with inputs from two atomic subsystems.

Use signal tracking to prevent block wind-up in multiloop control approaches.

Use the Lookup Table Dynamic block to approximate the sinh function. The breakpoint data is given by the vector [-5:5] and the table data is given by the vector sinh([-5:5]). The input x is

Use the Discrete Derivative block to compute the discrete-time derivative of a floating-point input signal. The unfiltered discrete-time derivative is compared to a filtered

Perform a first-order sample-and-hold of a sine wave signal using the First-Order Hold block.

Read a structure from the MATLAB workspace using a sample time specified in the From Workspace block. When you open the model, the following code is executed by a PreLoadFcn callback:

Specify the Number of bits in the Counter Free-Running block as a positive integer.

Perform element-wise (.*) multiplication of inputs using the Product block. In this example, the Product block multiplies two scalars, a scalar and a vector, and two 2x2 matrices.

Use the Trigonometric Function block to compute the sine of a floating-point input. The output of the Trigonometric Function block has the same data type as the input because the input data

Use the Real-Imag to Complex block to construct a complex-valued signal from real and imaginary parts. You can provide both the real and imaginary parts as block inputs, or provide one value

Use signal tracking to achieve bumpless control transfer in systems that switch between two controllers. You can make one controller track the output of the other controller by connecting

Builds a two-input AND function, which returns 1 when both input elements are 1, and 0 otherwise. To implement this function, specify the Truth table parameter value as [0; 0; 0; 1] The portion

Use the MinMax Running Resettable block to calculate the running minimum value. To watch how the running minimum value changes at each time step, you can use the Step Forward button to advance

Multiply and divide several input signals using the Product block.

Specify evenly spaced breakpoint data in the Prelookup block.

Extract specific bits from the stored integer value of an input signal.

Compares the complex exponential output for two different configurations of the Trigonometric Function block.

Use the From, Goto, and Goto Tag Visibility blocks to route signals in your model. The GotoGlobal block at the top-level of the model has the Goto tag parameter set to G and the Tag visibility set

Detect when an input signal falls within a dynamically specified interval. The interval is defined by two Sine Wave blocks. When the input to the Interval Test Dynamic block falls between

How the sldemo_boiler uses the Polynomial block.

Use the Product of Elements block to perform element-wise multiplication and division of inputs.

Use the Callback Button block to perform initialization routines on your model.

Create a MATLAB® timeseries object with time and signal values. Save the timeseries object to a MAT-file and load into a model using a From File block.

Use the MinMax block to output the maximum value of two sine waves.

Use the Ground block to ground block input ports that have fixed-point data types. The top row of this example illustrates the Ground block behavior when the fixed-point data type can

If the Bit Set block is turned on for bit 2 bit 2 is set to 1.

The sldemo_fuelsys model uses a Discrete-Time Integrator block in the fuel_rate_control/airflow_calc subsystem. This block uses the Forward Euler integration method.

How the Index Vector block works with zero-based and one-based indexing.

Use the n-D Lookup Table block to create a logarithm lookup table. The lookup table allows you to approximate the common logarithm (base 10) over the input range [1,10] without performing an

Modify a model so that you can change a phase delay for a Pulse Generation block during simulation. You cannot tune the value of the Phase delay parameter during simulation. As a workaround,

Use the Trigonometric Function block to compute the CORDIC approximation of sincos for a fixed-point input signal.

How the Sum block reorders inputs. If you use a - sign as the first operation, the block reorders the inputs, if possible, to use a + operation. For example, in the expression output = -a-b+c, the

Use the Permute Dimensions block to permute the first and third dimensions of a 3-by-4-by-5 input array.

How you specify a waveform with the Repeating Sequence block. In this model, the block defines the Time values parameter as [0:0.1:0.5] and the Output values parameter as [0 15 25 09 13 17]. The

The following model shows how the Bitwise Operator block works for signed inputs.

The following model shows how the Bitwise Operator block works for unsigned inputs.

This sample circuit has three inputs: the two bits ( a and b) to be summed and a carry-in bit (c). It has two outputs: the carry-out bit (c') and the sum bit (s).

Feed a breakpoint dataset from a Constant block to the bp input port of the Prelookup block.

Specify table data on the dialog box of the Direct Lookup Table (n-D) block. In the following model, the table data is a is a 4-D array of linearly increasing values that you define with the

A Switch block with a Boolean input for the control port.

Perform a vertical matrix concatenation with the Matrix Concatenate block. When you set the Concatenate dimension parameter to 1 and the inputs are 2-D matrices, the block performs

Output a bus object from the Constant block. The six Constant blocks used to create a bus object in the ex_busic example (see

Output a bus containing the index (k) and fraction (f) from Prelookup block. The bus object can then be used as an input to the Interpolation Using Prelookup block. The example also shows how to

The effect of the Backlash block on a sine wave using default parameters. The initial Deadband width is 1 and the Initial output is 0.

Use the Ground block to ground block input ports that have integer and enumerated data types. In top row of this example, the output of the Constant block determines the data type (int8) of the

Add the sample time value to a signal using the Weighted Sample Time Math block.

Provide table data as an input to the Direct Lookup Table block. In the following model, a is a 4-D array of linearly increasing values that you define with the following model preload

Use the Magnitude-Angle to Complex block to construct a complex-valued signal. You can provide both the magnitude and phase angle as block inputs, or provide one value as an input, and the

Detect the rising edge of a signal using the Detect Rise Nonnegative and Detect Rise Positive blocks.

Perform a horizontal matrix concatenation with the Matrix Concatenate block. When you set the Concatenate dimension parameter to 2 and the inputs are 2-D matrices, the block performs

How the Quantizer and Saturation blocks are used in the model ex_sldemo_boiler. The ADC subsystem digitizes the input analog voltage by:

View the simulation sample time at a specified sampling interval using the Digital Clock block. In this model, the Scope shows the output of a Digital Clock block with the Sample time set to

Use the Detect Fall Nonpositive block to detect a falling edge in the input signal. The block detects a falling edge when the signal value decreases from a strictly positive value to a

Use the Merge block with inputs ports that have different widths. If you select Allow unequal port widths, the block accepts scalar and vector inputs having differing numbers of elements.

The difference in behavior of the Pulse Generator block in time-based and sample-based modes.

Read a 2-D structure from the MATLAB workspace. When you open the model, the following code is executed by a PreLoadFcn callback:

Use the Algebraic Constraint block to solve the system

Using the Assignment block to assign values computed in a For or While Iterator loop to successive elements. You can use vector, matrix or multidemensional signals and do the assignment in a

The sldemo_bounce example shows how to use the Second-Order Integrator and Memory blocks to capture the velocity of a bouncing ball just before it hits the ground.

Perform multidimensional matrix concatenation with the Matrix Concatenate block. When you set the Concatenate dimension parameter to 3 and the inputs are 2-D matrices, the block performs

Use the Memory and Clock blocks to calculate and display the step size in a simulation. The Sum block subtracts the time at the previous time step, which the Memory block generates, from the

Compute the unary minus of a matrix input.

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:

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

Contact your local office