Этот пример иллюстрирует алгоритм интерполяции в 2D и 3-D Интерполяционной таблице, которая оптимизирована для размещения главного массива строки. Алгоритм интерполяции, который оптимизирован для размещения главного массива столбца, также представлен как ссылка. Код, сгенерированный при помощи главного строкой алгоритма интерполяции, выполняет с лучшей скоростью и использованием памяти при работе с табличными данными с размещением главного массива строки. Код, сгенерированный при помощи главного столбцом алгоритма интерполяции, выполняет лучше всего с размещением главного массива столбца.
В этом примере, вас:
Интерполируйте на 2D Интерполяционной таблице с главным столбцом и главным строкой алгоритмом.
Сгенерируйте код с главным строкой алгоритмом и размещением массивов.
Идентифицируйте размещение массивов и выберите оптимизированный алгоритм.
Интерполируйте на 3-D Интерполяционной таблице с главным столбцом и главным строкой алгоритмом.
1. Откройте модель rtwdemo_row_lut2d
в качестве примера.
model = 'rtwdemo_row_lut2d';
open_system(model);
2. По умолчанию Simulink конфигурирует модель с главным столбцом алгоритмом и размещением главного массива столбца. Модель rtwdemo_row_lut2d
сконфигурирована, чтобы использовать главный столбцом алгоритм. Моделируйте модель. Чтобы наблюдать выходной сигнал, откройте Инспектора Данных моделирования от панели инструментов Simulink Editor. Выходное значение равняется 4.
3. Чтобы включить главные строкой алгоритмы, откройте диалоговое окно Model Configuration Parameters. На Математике и панели Типов данных, включите алгоритмы Использования параметра конфигурации, оптимизированные для размещения главного массива строки. Также в Окне Команды MATLAB, введите:
set_param(model,'UseRowMajorAlgorithm','on');
4. Моделируйте модель и наблюдайте те результаты в Инспекторе Данных моделирования. Выходное значение равняется 4.
Главные столбцом и главные строкой алгоритмы отличаются только по порядку интерполяции. В некоторых случаях, из-за различной операции заказывают на том же наборе данных, вы можете испытать незначительные числовые различия в выходных параметрах главных столбцом и главных строкой алгоритмов. Для 2D Интерполяционной таблицы, используемой в модели в качестве примера, алгоритм интерполяции проиллюстрирован здесь.
2D табличные данные, используемые в модели rtwdemo_row_lut2d
:
Table_3by2.Value
ans = 1 4 2 5 3 6
1. Откройте диалоговое окно Model Configuration Parameters. В дополнение к включению алгоритмов Использования, оптимизированных для параметра конфигурации размещения главного массива строки, на Генерации кода> Интерфейсная панель, устанавливает Размещение параметра конфигурации Массивов на Главную строкой опцию. Этот параметр конфигурации включает модель для главной строкой генерации кода. Также в Окне Команды MATLAB, введите:
set_param(model, 'ArrayLayout','Row-major');
2. Измените свою текущую папку в MATLAB к перезаписываемой папке. Чтобы сгенерировать код, создайте модель при помощи Ctrl+B или путем нажатия кнопки Build Model на панели инструментов.
3. В сгенерированном коде наблюдайте табличные данные с размещением главного массива строки. Для сравнения вот табличные данные в сгенерированном коде для размещения главного массива столбца.
В сгенерированном коде табличные данные находятся в главном строкой порядке, и алгоритм интерполяции оптимизирован для размещения главного массива строки. Главный строкой алгоритм работает с табличными данными, которые непрерывны в памяти. Это приводит к более быстрому доступу к кэшу, делая эти алгоритмы благоприятными для кэша.
Эта таблица суммирует отношение между размещением массивов и благоприятными для кэша алгоритмами. Рекомендуется использовать алгоритм, который оптимизирован для заданного размещения массивов, чтобы достигнуть хорошей производительности. Например, используйте главный строкой алгоритм интерполяции, когда размещение массивов будет установлено в Главный строкой для генерации кода.
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);