Можно импортировать данные таблицы и точки останова из переменных в рабочей области MATLAB, обратившись к ним на вкладке Таблица (Table) и Точки останова (Breakpoints) диалогового окна. В следующих примерах показано, как импортировать и экспортировать данные стандартного и нестандартного форматов из рабочей области MATLAB.
Предположим, что в блоке n-D Lookup Table указана таблица поиска 3-D.
Создайте переменные рабочей области для использования в качестве данных точки останова и таблицы для таблицы подстановки.
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
Щелкните Править таблицу и точки останова (Edit table and breakpoints), чтобы открыть редактор таблиц подстановки и показать данные из переменных рабочей области.

При внесении изменений в данные таблицы подстановки рассмотрите возможность распространения изменений на переменные рабочей области MATLAB, импортированные с помощью команды «Файл» > «Обновить данные блока».
Можно также использовать редактор таблиц подстановки для редактирования табличных данных и набора данных точек останова Simulink.LookupTable и набор данных точек останова Simulink.Breakpoint и распространить изменения обратно на объект.
Предположим, что внесены изменения в переменные таблицы подстановки, импортированные из переменных рабочей области MATLAB в окне Импорт данных таблицы подстановки стандартного формата. Например, измените значение данных в (1,1,1) с 1 кому 33. Чтобы распространить это изменение обратно в table3d_map в рабочей области выберите «Файл» > «Обновить данные блока». Нажмите кнопку Да, чтобы подтвердить, что вы хотите перезаписать table3d_map.
Предположим, что в блоке n-D Lookup Table указана таблица поиска 3-D. Создайте переменные рабочей области для использования в качестве данных точки останова и таблицы для таблицы подстановки. Переменная для табличных данных, 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 команда.
Данные таблицы: reshape(table3d_map_custom,[2,4,3])
Точки останова 1: bp3d_y
Точки останова 2: bp3d_x
Точки останова 3: bp3d_z
Щелкните Править таблицу и точки останова (Edit table and breakpoints), чтобы открыть редактор таблиц подстановки и показать данные из переменных рабочей области.

Измените значение 1 на 33 в редакторе таблиц подстановки. Редактор таблиц подстановки записывает изменения, сохраняя копию таблицы. Чтобы восстановить значения переменных из рабочей области MATLAB ®, выберите «Файл» > «Перезагрузить данные блока». Чтобы обновить переменные рабочего пространства MATLAB отредактированными данными, выберите «Файл» > «Обновить данные блока» в редакторе таблиц подстановки. Нельзя распространить изменение на table3d_map_custom, переменная рабочей области, содержащая нестандартные данные таблицы для n-D блока таблицы подстановки. Для распространения изменения необходимо зарегистрировать функцию настройки, которая находится в пути поиска 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 - Позволяет преобразовывать данные таблицы для блока.
tableWorkSpaceVarName - указывает имя переменной рабочей области, имеющей нестандартный формат таблицы.
tableConvertFcnHandle - задает дескриптор для функции преобразования.
Когда allowTableConvertLocal имеет значение trueданные таблицы для этого блока преобразуются в нестандартный формат переменной рабочей области, имя которой совпадает tableWorkSpaceVarName. Функция преобразования соответствует дескриптору, который tableConvertFcnHandle указывает. Для функции преобразования можно использовать любое буквенно-цифровое имя.
В том же файле определите myConvertTableFcn функция. Эта функция преобразует трехмерную таблицу поиска размера Rows * Columns * Height в двумерную переменную размера (Rows * Height) * Columns.
% 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
Откройте редактор таблиц подстановки для блока таблицы подстановки и выберите «Файл» > «Обновить данные блока». Нажмите кнопку Да, чтобы перезаписать переменную рабочей области 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, предлагается заменить его числовыми данными. Нажмите кнопку Да, чтобы заменить выражение в поле Данные таблицы числовыми данными. Нажмите кнопку «Нет», если не требуется, чтобы изменения в редакторе таблиц подстановки отображались в диалоговом окне блоков.
В начале сеанса MATLAB, Simulink загружает каждый sl_customization.m файл адаптации по пути и выполняет sl_customization функция. Выполнение каждой функции устанавливает настройки для этого сеанса.
При выборе «Файл» > «Обновить данные блока» в редакторе таблиц подстановки редактор проверяет список дескрипторов функций в массиве ячеек для cm.LookupTableEditorCustomizer.getTableConvertToCustomInfoFcnHandle. Если массив ячеек содержит один или несколько дескрипторов функций, allowTableConvertLocal определяет возможность распространения изменений в редакторе таблиц подстановки.
Если установлено значение trueзатем данные таблицы преобразуются в нестандартный формат в переменной рабочей области.
Если установлено значение false, то данные таблицы не преобразуются в нестандартный формат в переменной рабочей области.
Если установлено значение true и другая функция настройки указывает, что она должна быть falseредактор таблиц подстановки сообщает об ошибке.