exponenta event banner

Таблица прямого поиска (n-D)

Индексирование в n-мерную таблицу для извлечения элемента, вектора или матрицы 2-D

  • Библиотека:
  • Таблицы Simulink/Lookup

    Таблицы кодера/поиска HDL

  • Direct Lookup Table (n-D) block

Описание

Таблица прямого поиска (n-D) блокирует индексы в n-мерную таблицу для извлечения элемента, вектора или матрицы 2-D. Первый индекс выбора соответствует верхнему (или левому) входному порту. Можно указать данные таблицы в качестве входных данных блока или определить данные таблицы в диалоговом окне блока. Количество входных портов и размер выходных данных зависят от количества табличных размеров и выбранного выходного фрагмента.

При выборе вектора из таблицы 2-D выходной вектор может быть столбцом или строкой, в зависимости от настройки параметров конфигурации модели Math and Data Types > Use algoriths optimized for row-major array layout. Входными данными блока являются индексы на основе нуля (дополнительные сведения см. в разделе Входные данные для выбора этого объекта из параметра таблицы.

Блок «Таблица прямого поиска» поддерживает символьные размеры.

Входы и выходы блоков

Блок таблицы прямого поиска (n-D) использует входные данные в качестве нулевых индексов в n-мерной таблице. Количество входов зависит от формы вывода: элемент, вектор или 2-D матрица.

Набор выходных значений определяется как параметр Table data. Для поведения основного алгоритма столбца по умолчанию первый вход указывает отсчитываемый от нуля индекс для измерения таблицы, который на единицу превышает выходную размерность. Следующий вход задает отсчитываемый от нуля индекс для следующего измерения таблицы и т.д.

Форма выводаРазмерность выводаТабличный размер, сопоставляемый с первым вводом
Элемент01
Вектор12
Матрица23

Предположим, что требуется выбрать вектор значений из таблицы 4-D.

Применяется следующее сопоставление входного порта блока с размером таблицы.

Этот входной порт...Индекс для этого измерения таблицы...
12
23
34

Изменение внешнего вида значка блока

В зависимости от заданных параметров значок блока изменяет внешний вид. Для табличных размеров, превышающих 4, значок соответствует версии 4-D, но показывает точное количество размеров вверху.

При использовании параметра Данные таблицы (Table data) эти значки отображаются для основного поведения столбца по умолчанию. Некоторые значки отличаются при выборе параметра конфигурации Math and Data Types > Use algoriths optimized for row-major array layout.

Объект, выбранный из таблицыКоличество табличных размеров
1234

Элемент

Вектор

2-D Матрица

Неприменимо

При использовании порта ввода таблицы отображаются эти значки.

Объект, выбранный из таблицыКоличество табличных размеров
1234

Элемент

Вектор

2-D Матрица

Неприменимо

Порты

Вход

развернуть все

Для алгоритма «основной столбец» по умолчанию - первый входной порт, указывающий отсчитываемый от нуля индекс для измерения таблицы, на единицу превышающий выходную размерность (0, 1 или 2). Следующий вход задает отсчитываемый от нуля индекс для следующего измерения таблицы и т.д. Все входы индекса должны быть вещественными.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated

Для алгоритма «основной столбец» по умолчанию - N-й входной порт, указывающий отсчитываемый от нуля индекс для измерения таблицы, которое на N превышает выходную размерность (0, 1 или 2). Количество входов зависит от формы выхода. Все входы индекса должны быть вещественными.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated

Данные таблицы, указанные как вектор, матрица или массив N-D. Размер таблицы должен соответствовать размерам параметра Number of dimensions. Тип выходных данных блока совпадает с типом данных таблицы.

Зависимости

Чтобы включить этот порт, установите флажок Make table an input.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated

Продукция

развернуть все

Выходной срез, предоставляемый в виде скалярной, векторной или 2-D матрицы. Размер вывода блока определяется настройкой параметра Inputs select this object from table. Тип выходных данных совпадает с типом данных таблицы.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated

Параметры

развернуть все

Главный

Стол

Количество измерений, которые должен иметь параметр Table data. Это значение определяет количество независимых переменных для таблицы и количество входов в блок.

Чтобы указать...Сделай это...

1, 2, 3 или 4

Выберите значение из раскрывающегося списка.

Большее количество табличных измерений

Введите положительное целое число непосредственно в поле.

Максимальное количество табличных размеров, поддерживаемых данным блоком, составляет 30.

Программное использование

Параметр блока: NumberOfTableDimensions
Текст: символьный вектор
Значения: '1' | '2' | '3' | '4' | ... |'30'|
По умолчанию: '2'

Установите этот флажок, чтобы предоставить данные таблицы блоку «Таблица прямого поиска» (n-D) в качестве ввода блока. Если этот флажок установлен, новый входной порт, T, появляется. Этот порт используется для ввода данных таблицы.

Программное использование

Параметр блока: TableIsInput
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Укажите таблицу выходных значений. Размер таблицы должен соответствовать размерам параметра Number of table dimensions.

Совет

Во время редактирования блок-схемы можно оставить поле данных таблицы пустым. Но для моделирования необходимо сопоставить количество измерений в данных таблицы с числом измерений таблицы. Дополнительные сведения о построении многомерных массивов MATLAB ® см. в разделе Многомерные массивы.

Щелкните Править (Edit), чтобы открыть Редактор таблиц подстановки (Lookup Table Editor). Дополнительные сведения см. в разделе Правка таблиц подстановки.

Зависимости

Чтобы включить поле Данные таблицы, снимите флажок Сделать таблицу вводом.

Программное использование

Параметр блока: Table
Текст: символьный вектор
Значения: scalar, vector, matrix, or N-D array
По умолчанию: '[4 5 6;16 19 20;10 18 23]'
Алгоритм

Укажите, являются ли выходные данные одним элементом, вектором или 2-D матрицей. Количество входных портов для индексирования зависит от выбранного значения.

ВыборКоличество входных портов для индексирования
Element Количество табличных измерений
Vector Количество табличных размеров -1
2-D Matrix Количество размеров таблицы -2

Эта нумерация соответствует индексированию MATLAB. Например, при наличии 4-D таблицы данных следуйте этим инструкциям.

Чтобы получить доступ...Укажите...Как в...
ЭлементЧетыре индекса array(1,2,3,4)
ВекторТри индекса array(:,2,3,4)(основной алгоритм столбца по умолчанию)
Матрица 2-DДва индекса array(:,:,3,4)(основной алгоритм столбца по умолчанию)

Совет

При установке параметра конфигурации Math and Data Types > Use algoriths optimized for row-major array layout поведение блока Direct Lookup Table изменяется с column-major на row-major. Для этого блока алгоритмы «основной столбец» и «главная строка» могут семантически отличаться в выходных вычислениях, что приводит к различным числовым значениям. Например, предположим, что параметр Inputs select this object from table имеет значение Vector. Элементы выбранного вектора являются смежными в табличной памяти. В этой таблице показан алгоритм «основной столбец» и «основная строка» в зависимости от измерения таблицы:

Измерение таблицыОсновной алгоритм столбцаОсновной алгоритм строки
Таблица 2-DВыбран вектор столбцаВыбран вектор строки
Стол 3-D и вышеВектор вывода выбирается из первого измерения таблицыВектор вывода выбирается из последней размерности таблицы

Рассмотрим алгоритмы прямого поиска строк и столбцов с векторными выходами из таблицы 3-D. Последнее измерение является третьим измерением таблицы 3-D. Из-за семантических изменений прямой поиск по столбцам и строкам может выводить различный размер вектора и числовые значения.

На этом рисунке показан блок таблицы прямого поиска (n-D), сконфигурированный с 3-D таблицей и векторным выводом. По умолчанию значок блока показывает основной алгоритм столбца.

Чтобы использовать один и тот же блок, измените математику и типы данных > Использовать алгоритм, оптимизированный для параметра конфигурации макета строки и главной строки модели, и выполните перекомпиляцию. Значок блока изменяется, отражая изменение алгоритма, оптимизированного для основных строк.

Дополнительные сведения о поддержке основных строк см. в разделе Компоновка основных массивов строк: упрощение интеграции с внешним кодом C/C + + для таблицы поиска и других блоков (Simulink Coder ).

Программное использование

Параметр блока: InputsSelectThisObjectFromTable
Текст: символьный вектор
Значения: 'Element' | 'Vector' | '2-D Matrix'
По умолчанию: 'Element'

Укажите, следует ли отображать предупреждение или ошибку, если индекс находится вне диапазона относительно измерения таблицы. Варианты включают в себя:

  • None - Нет ответа.

  • Warning - Вывод предупреждения и продолжение моделирования.

  • Error - завершение моделирования и отображение ошибки.

При выборе None или Warning, блок зажимает индексы вне диапазона для соответствия размерам таблицы. Например, если указанный индекс равен 5.3, а максимальный индекс для этого измерения таблицы равен 4, блок зажимает индекс до 4.

Программное использование

Параметр блока: DiagnosticForOutOfRangeInput
Текст: символьный вектор
Значения: 'None' | 'Warning' | 'Error'
По умолчанию: 'Warning'

Укажите время выборки в качестве значения, отличного от -1. Дополнительные сведения см. в разделе Указание времени образца.

Зависимости

Этот параметр не отображается, если для него явно не задано значение, отличное от -1. Дополнительные сведения см. в разделе Блоки, для которых образец времени не рекомендуется.

Программное использование

Параметр блока: SampleTime
Текст: символьный вектор
Значения: скаляр или вектор
По умолчанию: '-1'

Создание кода

Укажите, следует ли включать код, который проверяет входные значения вне диапазона.

ФлажокРезультатКогда использовать

on

Созданный код не включает условные операторы для проверки входов точек останова вне диапазона.

Если входные данные находятся вне допустимого диапазона, это может привести к неопределенному поведению сгенерированного кода.

Для эффективности кода

off

Созданный код включает условные операторы для проверки входов вне диапазона.

Для критически важных для безопасности приложений

Если введенные данные находятся вне диапазона, можно установить флажок Удалить защиту от индекса вне диапазона в сгенерированном коде для обеспечения эффективности кода. По умолчанию этот флажок снят. Для критически важных для безопасности приложений не устанавливайте этот флажок. Если необходимо установить флажок Удалить защиту от индекса вне диапазона в сгенерированном коде, сначала проверьте, что входные данные модели находятся в диапазоне. Например:

  1. Снимите флажок Удалить защиту от индекса вне диапазона в сгенерированном коде.

  2. Установите для входного параметра Diagnostic for out-of-range значение Error.

  3. Моделирование модели в обычном режиме.

  4. Если имеются ошибки вне диапазона, исправьте их, чтобы они находились в диапазоне, и запустите моделирование снова.

  5. Если моделирование больше не создает ошибки ввода вне диапазона, установите флажок Удалить защиту от индекса вне диапазона в сгенерированном коде.

    Примечание

    Если установлен флажок Удалить защиту от индекса вне диапазона в сгенерированном коде, а входные данные находятся вне диапазона, поведение сгенерированного кода не определено.

В зависимости от приложения можно выполнить следующие проверки Model Advisor для проверки использования этого флажка.

  • По продукту > Embedded Coder > Определение блоков таблицы поиска, которые создают дорогостоящий код проверки за пределами диапазона

  • По продукту > Simulink Check > Modeling Standards > DO-178C/DO-331 Checks > Проверка использования блоков таблицы подстановки

Дополнительные сведения о модуле Model Advisor см. в разделе Выполнение проверок модуля Model Advisor.

Кроме того, чтобы определить, безопасно ли устанавливать этот флажок, если у вас есть лицензия Simulink ® Design Verifier™, попробуйте использовать проверку обнаружения нарушений диапазона ввода блоков (Simulink Design Verifier).

Программное использование

Параметр блока: RemoveProtectionInput
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Атрибуты таблицы

Примечание

Параметры на панели Атрибуты таблицы (Table Attributes) недоступны, если выбрана опция Сделать таблицу вводом (Make table an input). В этом случае блок наследует все атрибуты таблицы от входного порта с меткой T.

Укажите минимальное значение для данных таблицы. Значение по умолчанию: [] (не указано).

Программное использование

Параметр блока: TableMin
Текст: символьный вектор
Значения: скаляр
По умолчанию: '[]'

Укажите максимальное значение для данных таблицы. Значение по умолчанию: [] (не указано).

Программное использование

Параметр блока: TableMax
Текст: символьный вектор
Значения: скаляр
По умолчанию: '[]'

Укажите тип данных таблицы. Можно установить для него значение:

  • Правило, наследующее тип данных, например: Inherit: Inherit from 'Table data'

  • Имя встроенного типа данных, например: single

  • Имя класса типа данных, например перечисляемого класса типа данных

  • Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)

Нажмите кнопку Показать помощник по типам данных, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.

Программное использование

Параметр блока: TableDataTypeStr
Текст: символьный вектор
Значения: 'Inherit: Inherit from 'Table data'' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'Enum: <class name>'|'<data type expression>'
По умолчанию: 'Inherit: Inherit from 'Table data''

Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в этом блоке. Дополнительные сведения см. в разделе Блокировка параметров типа выходных данных (конструктор фиксированных точек).

Программное использование

Параметр блока: LockScale
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: 'off'

Характеристики блока

Типы данных

Boolean | double | enumerated | fixed point[a] | half | integer | single

Прямой проход

yes

Многомерные сигналы

yes

Сигналы переменного размера

no

Обнаружение пересечения нулей

no

[a] Этот блок поддерживает типы данных с фиксированной точкой только для данных «Table».

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен до R2006a