Алгоритм интерполяции для размещения массива основных строк

Этот пример иллюстрирует алгоритм интерполяции в 2-D и Интерполяционной таблице 3-D которая оптимизирована для размещения массива с основной строкой. Алгоритм интерполяции, который оптимизирован для размещения массива основной колонки, также представлен как ссылка. Код, сгенерированный использованием алгоритма интерполяции больших строк, выполняет с лучшей скоростью и использованием памяти при работе с данными таблицы с размещением массива больших строк. Код, сгенерированный использованием алгоритма интерполяции больших столбцов, лучше всего работает с размещением массива больших столбцов.

В этом примере вы:

  • Интерполяция на двумерную интерполяционную таблицу с алгоритмом основного столбца и основной строки.

  • Сгенерируйте код с алгоритмом основной строки и размещением массива.

  • Идентифицируйте размещение массива и выберите оптимизированный алгоритм.

  • Интерполяция в интерполяционную таблицу 3-D с алгоритмом основного столбца и основной строки.

Симулируйте с 2-D алгоритмом Row-Major

1. Откройте пример модели rtwdemo_row_lut2d.

model = 'rtwdemo_row_lut2d';
open_system(model);

2. По умолчанию Simulink конфигурирует модель с алгоритмом основного столбца и размещением массива основного столбца. Модель rtwdemo_row_lut2d сконфигурировано для использования алгоритма основного столбца. Симулируйте модель. Чтобы наблюдать выход, откройте Data Inspector на вкладке Simulation. Выходное значение - 4.

3. Чтобы включить алгоритмы основной строки, откройте диалоговое окно Параметров конфигурации. На панели Математические и типы данных включите параметр конфигурации Использовать алгоритмы, оптимизированные для размещения массива с основной строкой. Кроме того, в Командном Окне MATLAB введите:

set_param(model,'UseRowMajorAlgorithm','on');

4. Симулируйте модель и наблюдайте эти результаты в Data Inspector. Выходное значение - 4.

Алгоритмы основной и основной строки различаются только в порядке интерполяции. В некоторых случаях из-за различного порядка операции на том же наборе данных вы можете испытывать незначительные числовые различия в выходах алгоритмов column-major и row-major. Для двумерных интерполяционных таблиц, используемых в модели примера, алгоритм интерполяции проиллюстрирован здесь.

Сгенерируйте код при помощи алгоритма Row-Major и размещения массива

Данные 2-D таблицы, используемые в rtwdemo_row_lut2d модели является:

Table_3by2.Value
ans =

     1     4
     2     5
     3     6

1. Откройте диалоговое окно Параметры конфигурации. В дополнение к включению алгоритмов Use, оптимизированных для параметра конфигурации размещения массива с основной строкой, на панели Генерация Кода > Interface установите размещение параметра конфигурации Array Row-Major опция. Этот параметр конфигурации включает модель для генерации кода основной строки. Кроме того, в Командном Окне MATLAB введите:

set_param(model, 'ArrayLayout','Row-major');

2. Измените текущую папку в MATLAB ® на папку с возможностью записи. На вкладке Кода С нажатия кнопки Build, чтобы сгенерировать Код С.

3. В сгенерированном коде наблюдайте данные таблицы с размещением массива основной строки. Для сравнения, вот данные таблицы в сгенерированном коде для размещения массива с основным столбцом.

В сгенерированном коде данные таблицы находятся в основном порядке строк, и алгоритм интерполяции оптимизирован для размещения массива основных строк. Алгоритм основной строки работает с данными таблицы, которая смежна в памяти. Это приводит к более быстрому доступу к кэшу, делая эти алгоритмы удобными для кэша.

В этой таблице обобщены отношения между размещением массива и удобными для кэша алгоритмами. Рекомендуется использовать алгоритм, который оптимизирован для заданного размещения массива, чтобы достичь хорошей эффективности. Для примера используйте алгоритм интерполяции с большой строкой, когда для размещения массива задано значение Row-Major для генерации кода.

Интерполяция в таблице 3-D

1. Откройте пример модели rtwdemo_row_interpalg.

open_system('rtwdemo_row_interpalg');

2. Сгенерируйте код для модели с помощью предыдущей процедуры. Симулируйте и сгенерируйте код из модели путем повторения шагов, выполненных на rtwdemo_row_lut2d модель.

Интерполяции основной строки и основной столбца в таблице 3-D, используемой в модели примера, проиллюстрированы здесь.

close_system('rtwdemo_row_lut2d',0);
close_system('rtwdemo_row_interpalg', 0);

Похожие темы