Вы можете таблица импорта и устанавливать точки останова данные от переменных в MATLAB workspace путем ссылки на них во вкладке Table и Breakpoints диалогового окна. Следующие примеры показывают, как импортировать и стандартный формат экспорта и нестандартные данные формата от MATLAB workspace.
Предположим, что вы задаете 3-D интерполяционную таблицу в своем n-D блоке Lookup Table.
Создайте переменные рабочей области, чтобы использовать в качестве точки останова и табличных данных для интерполяционной таблицы.
table3d_map = zeros(2,4,3); table3d_map(:,:,1) = [ 1 2 3 4; 5 6 7 8]; table3d_map(:,:,2) = [ 11 12 13 14; 15 16 17 18]; table3d_map(:,:,3) = [ 111 112 113 114; 115 116 117 118]; bp3d_z =[ 0 10 20]; bp3d_x =[ 0 10 20 30]; bp3d_y =[ 400 6400];
Табличные данные: table3d_map
Точки останова 1: bp3d_y
Точки останова 2: bp3d_x
Точки останова 3: bp3d_z
Щелкните редактируют таблицу и точки останова, чтобы открыть Редактор Интерполяционной таблицы и показать данные от переменных рабочей области.
Когда вы вносите изменения в свои данные интерполяционной таблицы, рассматриваете распространение изменений назад в переменных MATLAB workspace, данные были импортированы от использования Файла> Блочные Данные Обновления.
Можно также использовать Редактор Интерполяционной таблицы, чтобы отредактировать табличные данные и установить точки останова набор данных Simulink.LookupTable
и набор данных точки останова объектов Simulink.Breakpoint
и распространить изменения назад в объекте.
Предположим, что вы делаете изменение в переменные интерполяционной таблицы импортированным из переменных MATLAB workspace в, Импортируют Данные Интерполяционной таблицы Стандартного формата. Например, измените значение данных в (1,1,1) от 1
до 33
. Чтобы распространить это возвращается к table3d_map
в рабочей области, выбирает File> Update Block Data. Нажмите кнопку Да, чтобы подтвердить, что вы хотите перезаписать table3d_map
.
Предположим, что вы задаете 3-D интерполяционную таблицу в своем n-D блоке Lookup Table. Создайте переменные рабочей области, чтобы использовать в качестве точки останова и табличных данных для интерполяционной таблицы. Переменная для табличных данных, table3d_map_custom
, является двумерной матрицей.
table3d_map_custom = zeros(6,4); table3d_map_custom = [ 1 2 3 4; 5 6 7 8; 11 12 13 14; 15 16 17 18; 111 112 113 114; 115 116 117 118]; bp3d_z =[ 0 10 20]; bp3d_x =[ 0 10 20 30]; bp3d_y =[ 400 6400];
table3d_map_custom
в трехмерную матрицу для табличного ввода данных с помощью команды reshape
.
Табличные данные: изменитесь (table3d_map_custom, [2,4,3])
Точки останова 1: bp3d_y
Точки останова 2: bp3d_x
Точки останова 3: bp3d_z
Щелкните редактируют таблицу и точки останова, чтобы открыть Редактор Интерполяционной таблицы и показать данные от переменных рабочей области.
Изменитесь 1 - 33 в Редакторе Интерполяционной таблицы. Редактор Интерполяционной таблицы записывает ваши изменения путем поддержания копии таблицы. Чтобы восстановить значения переменных из рабочей области MATLAB®, выберите File> Reload Block Data. Чтобы обновить переменные MATLAB workspace с отредактированными данными, выберите File> Update Block Data в Редакторе Интерполяционной таблицы. Вы не можете распространить изменение в table3d_map_custom
, переменная рабочей области, которая содержит нестандартные табличные данные для n-D блока Lookup Table. Чтобы распространить изменение, необходимо указать специальную функцию, которая находится на пути поиска файлов MATLAB. Для получения дополнительной информации смотрите, Распространяют Нестандартные Данные Интерполяционной таблицы Формата.
Этот пример показывает, как распространить изменения из Редактора Интерполяционной таблицы к переменным рабочей области нестандартного формата. Предположим, что ваша модель Simulink® от Импортирует Нестандартные Данные Интерполяционной таблицы Формата, имеет трехмерную интерполяционную таблицу, которая получает ее табличные данные от двумерной переменной рабочей области table3d_map_custom
. Обновите интерполяционную таблицу в Редакторе Интерполяционной таблицы и распространите, они возвращаются к table3d_map_custom
с помощью специальной функции.
Создайте файл с именем sl_customization.m
с этим содержимым.
function sl_customization(cm) cm.LookupTableEditorCustomizer.getTableConvertToCustomInfoFcnHandle{end+1} = ... @myGetTableConvertInfoFcn; end
В этой функции:
Аргумент cm
является указателем на менеджера по индивидуальной настройке объект.
Указатель @myGetTableConvertInfoFcn
добавляется к списку указателей на функцию в массиве ячеек для cm.LookupTableEditorCustomizer.getTableConvertToCustomInfoFcnHandle
. Можно использовать любое алфавитно-цифровое имя для функции, указатель которой вы добавляете к массиву ячеек.
В том же файле задайте функцию myGetTableConvertInfoFcn
.
function blkInfo = myGetTableConvertInfoFcn(blk,tableStr) blkInfo.allowTableConvertLocal = true; blkInfo.tableWorkSpaceVarName = 'table3d_map_custom'; blkInfo.tableConvertFcnHandle = @myConvertTableFcn; end
Функция myGetTableConvertInfoFcn
возвращает объект blkInfo
, содержащий три поля.
Преобразование данных таблицы allowTableConvertLocal
— Allows для блока.
tableWorkSpaceVarName
— Задает имя переменной рабочей области, которая имеет нестандартный формат таблицы.
tableConvertFcnHandle
— Задает указатель для функции преобразования.
Когда allowTableConvertLocal
установлен в true
, табличные данные для того блока преобразован в нестандартный формат переменной рабочей области, имя которой совпадает с tableWorkSpaceVarName
. Функция преобразования соответствует указателю, который задает tableConvertFcnHandle
. Можно использовать любое алфавитно-цифровое имя для функции преобразования.
В том же файле задайте функцию myConvertTableFcn
. Эта функция преобразовывает трехмерную интерполяционную таблицу строк размера * Столбцы * Высота к двумерной переменной размера (Rows*Height) * Столбцы.
% Converts 3-dimensional lookup table from Simulink format to % nonstandard format used in workspace variable function cMap = myConvertTableFcn(data) % Determine the row and column number of the 3D table data mapDim = size(data); numCol = mapDim(2); numRow = mapDim(1)*mapDim(3); cMap = zeros(numRow, numCol); % Transform data back to a 2-dimensional matrix cMap = reshape(data,[numRow,numCol]); end
Поместите sl_customization.m
на путь поиска файлов MATLAB. У вас может быть несколько файлов с именем sl_customization.m
на пути поиска файлов. Для получения дополнительной информации смотрите Поведение с Несколькими Специальными функциями.
Обновите индивидуальные настройки Simulink в подсказке команды MATLAB.
sl_refresh_customizations
Откройтесь Редактор Интерполяционной таблицы для вашей интерполяционной таблицы блокируют и выбирают File> Update Block Data. Нажмите кнопку Да, чтобы перезаписать переменную рабочей области table3d_map_custom
.
Проверьте значение table3d_map_custom
в базовом рабочем пространстве.
table3d_map_custom = 33 2 3 4 5 6 7 8 11 12 13 14 15 16 17 18 111 112 113 114 115 116 117 118
Изменение в Редакторе Интерполяционной таблицы распространило к переменной рабочей области.
Если вы не перезаписываете переменную рабочей области table3d_map_custom
, вам предлагают заменить его на числовые данные. Нажмите кнопку Да, чтобы заменить выражение в Табличном поле данных с числовыми данными. Нажмите No, если вы не хотите, чтобы ваш Редактор Интерполяционной таблицы изменения для табличных данных появился в блочном диалоговом окне.
В начале сеанса работы с MATLAB Simulink загружает каждый файл настройки sl_customization.m
на пути и выполняет функцию sl_customization
. Выполнение каждой функции устанавливает индивидуальные настройки для того сеанса.
Когда вы выбираете File> Update Block Data в Редакторе Интерполяционной таблицы, редактор проверяет список указателей на функцию в массиве ячеек для cm.LookupTableEditorCustomizer.getTableConvertToCustomInfoFcnHandle
. Если массив ячеек содержит один или несколько указателей на функцию, свойство allowTableConvertLocal
определяет, могут ли изменения в Редакторе Интерполяционной таблицы быть распространены.
Если значение установлено к true
, то табличные данные преобразованы в нестандартный формат в переменной рабочей области.
Если значение установлено к false
, то табличные данные не преобразованы в нестандартный формат в переменной рабочей области.
Если значение установлено к true
, и другая специальная функция задает его, чтобы быть false
, Редактор Интерполяционной таблицы сообщает об ошибке.