Main Content

Lookup Table (Obsolete)

Approximate one-dimensional function

Library

Lookup Tables (until R2010b)

  • Lookup Table (Obsolete) block

Description

Note

The Lookup Table block is obsolete. This block was removed from the Lookup Tables library in R2011a and replaced with a 1-D version of the n-D Lookup Table block. However, existing models that contain the Lookup Table block continue to work for backward compatibility.

Use the 1-D Lookup Table block in new models. Consider using the upgradeadvisor function to replace Lookup Table with 1-D Lookup Table in existing models. See Programmatically Analyze and Upgrade Model.

Among other enhancements, the 1-D Lookup Table block supports the following features that the Lookup Table block does not:

  • Specification of parameter data types different from input or output signal types

  • Reduced memory use and faster code execution for evenly-spaced breakpoints that are nontunable

  • Fixed-point data types with word lengths up to 128 bits

  • Specification of index search method

  • Specification of diagnostic for out-of-range inputs

For more information, see Update Lookup Table Blocks to New Versions.

How the Block Differs from Other Lookup Table Blocks

The Lookup Table block computes an approximation to a function y = f(x) given data vectors x and y. To map two inputs to an output, use the Lookup Table (2-D) block.

You define the lookup table by specifying:

  • Vector of input values as a 1-by-n vector of x data points

  • Table data as a 1-by-n vector of y data points

To avoid parameter saturation errors, the Fixed-Point Designer™ automatic scaling script employs a special rule for the Lookup Table block. autofixexp (Fixed-Point Designer) modifies the scaling by using the lookup values of the Table data parameter in addition to the logged minimum and maximum simulation values. This action prevents saturation of the data to different values.

Monotonicity Requirements

The length of the x and y data vectors provided to this block must match. Also, the x data vector must be strictly monotonically increasing (for example, the value of the next element in the vector is greater than the value of the preceding element) after conversion to the input's fixed-point data type. However, the x data vector can be monotonically increasing (for example, the value of the next element in the vector is greater than or equal to the value of the preceding element) if all of the following apply:

  • The input and output signals are both either single or double.

  • The lookup method is Interpolation-Extrapolation.

Tip

Evenly-spaced breakpoints can make the generated code division-free. For more information, see fixpt_evenspace_cleanup and Identify questionable fixed-point operations (Embedded Coder).

For more information about monotonicity requirements, see Characteristics of Lookup Table Data. To learn how to model a discontinuous function using a Lookup Table block, see Representation of Discontinuities in Lookup Tables.

How the Block Generates Output

The block uses the input values to generate output using the method you select for the Lookup method parameter:

Lookup MethodAction by the Block
Interpolation-Extrapolation (default)

Performs linear interpolation and extrapolation of the inputs.

  • If a value matches the input, the output is the corresponding element in the output vector.

  • If no value matches the input, the block performs linear interpolation between two appropriate elements of the table to determine an output value. If the block input is less than the first or greater than the last input vector element, the block extrapolates using the first two or last two points.

Note

If you select this lookup method, code generation can occur for this block only if the input and output signals have the same floating-point data type.

Interpolation-Use End Values

Performs linear interpolation but does not extrapolate outside the end points of the input vector. Instead, the block uses the end values.

Use Input Nearest

Finds the element in x nearest the current input. The corresponding element in y is the output.

Note

If the input value is exactly halfway between two points in the Vector of input values, the nearest input is the point with the higher numerical value.

Suppose that you define the Vector of input values as [0 2] and the Table data as [0 1]. If your input value is 1, the Use Input Nearest method chooses the nearest input to be 2, and the corresponding output is 1.

Use Input Below

Finds the element in x nearest and below the current input. The corresponding element in y is the output. If there is no element in x below the current input, the block finds the nearest element.

Use Input Above

Finds the element in x nearest and above the current input. The corresponding element in y is the output. If there is no element in x above the current input, the block finds the nearest element.

Note

The Use Input Nearest, Use Input Below, and Use Input Above methods perform the same action when the input x matches a breakpoint value.

Data Type Support

The Lookup Table block supports the following data types:

  • Floating point

  • Built-in integer

  • Fixed point

  • Boolean

For more information, see Data Types Supported by Simulink.

Parameters

Vector of input values

Specify the vector of input values. This vector must be the same size as the Table data. Also, the input values vector must be strictly monotonically increasing after conversion to the input's fixed-point data type. However, the input values vector can be monotonically increasing if the input and output signals are both either single or double, and if the lookup method is Interpolation-Extrapolation. Note that due to quantization, the input values vector can be strictly monotonic in doubles format, but not so after conversion to a fixed-point data type.

The Vector of input values parameter is converted offline to the data type of the input signal using round-to-nearest and saturation.

Click the Edit button to open the Lookup Table Editor.

Table data

Specify the vector of output values. This vector must be the same size as the Vector of input values.

The Table data parameter is converted offline to the Output data type using round-to-nearest and saturation.

Lookup method

Specify the lookup method. See How the Block Generates Output for a discussion of the options for this parameter.

Sample time (-1 for inherited)

Specify the time interval between samples. To inherit the sample time, set this parameter to -1. See Specify Sample Time for more information.

Output minimum

Specify the minimum value that the block should output. The default value, [], is equivalent to -Inf. Simulink® software uses this value to perform:

Output maximum

Specify the maximum value that the block should output. The default value, [], is equivalent to Inf. Simulink software uses this value to perform:

Output data type

Specify the output data type. You can set it to:

  • A rule that inherits a data type, for example, Inherit: Inherit via back propagation

  • The name of a built-in data type, for example, single

  • The name of a data type object, for example, a Simulink.NumericType object

  • An expression that evaluates to a data type, for example, fixdt(1,16,0)

Click the Show data type assistant button to display the Data Type Assistant, which helps you set the Output data type parameter.

See Control Data Types of Signals for more information.

Lock output data type setting against changes by the fixed-point tools

Select to lock the output data type setting of this block against changes by the Fixed-Point Tool and the Fixed-Point Advisor. For more information, see Fixed-Point Tool (Fixed-Point Designer).

Integer rounding mode

Select the rounding mode for fixed-point lookup table calculations that occur during simulation or execution of code generated from the model. For more information, see Rounding (Fixed-Point Designer).

Block parameters such as Table data always round to the nearest representable integer value. To control the rounding of a block parameter, enter an expression using a MATLAB® rounding function into the parameter's edit field on the block dialog box.

Saturate on integer overflow

Select to have overflows saturate. Otherwise, they wrap.

When you select this check box, saturation applies to every internal operation on the block, not just the output or result. In general, the code generation process can detect when overflow is not possible, in which case, no saturation code is necessary.

Characteristics

Direct Feedthrough

Yes

Sample Time

Specified in the Sample time parameter

Scalar Expansion

No

Dimensionalized

Yes

Zero-Crossing Detection

No