Вы можете таблица импорта и устанавливать точки останова данные из переменных в рабочем пространстве MATLAB путем ссылки на них во вкладке Table and Breakpoints диалогового окна. Следующие примеры показывают, как импортировать и экспортировать стандартный формат и нестандартные данные о формате из рабочего пространства MATLAB.
Предположим, что вы задаете 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
Нажмите Edit table and breakpoints, чтобы открыть Редактор Интерполяционной таблицы и показать данные из переменных рабочей области.
Когда вы вносите изменения в свои данные об интерполяционной таблице, рассматриваете распространение изменений назад в переменных рабочего пространства MATLAB, данные были импортированы от использования File> Update Block Data.
Можно также использовать Редактор Интерполяционной таблицы, чтобы отредактировать табличные данные и установить точки останова набор данных Simulink.LookupTable
и набор данных точки останова объектов Simulink.Breakpoint
и распространить изменения назад в объекте.
Предположим, что вы делаете изменение в переменные интерполяционной таблицы импортированным из переменных рабочего пространства MATLAB в, Импортируют Данные об Интерполяционной таблице Стандартного формата. Например, измените значение данных в (1,1,1) от 1
до 33
. Чтобы распространить это возвращается к table3d_map
в рабочей области, выбирает File> Update Block Data. Нажмите Yes, чтобы подтвердить, что вы хотите перезаписать 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
в 3D матрицу для табличного ввода данных с помощью команды reshape
.
Табличные данные: reshape(table3d_map_custom,[2,4,3])
Точки останова 1: bp3d_y
Точки останова 2: bp3d_x
Точки останова 3: bp3d_z
Нажмите Edit table and breakpoints, чтобы открыть Редактор Интерполяционной таблицы и показать данные из переменных рабочей области.
Изменитесь 1 - 33 в Редакторе Интерполяционной таблицы. Редактор Интерполяционной таблицы записывает ваши изменения путем поддержания копии таблицы. Чтобы восстановить значения переменных из рабочей области MATLAB®, выберите File> Reload Block Data. Чтобы обновить переменные рабочего пространства MATLAB с отредактированными данными, выберите File> Update Block Data в Редакторе Интерполяционной таблицы. Вы не можете распространить изменение в table3d_map_custom
, переменная рабочей области, которая содержит нестандартные табличные данные для n-D блока Lookup Table. Чтобы распространить изменение, необходимо указать специальную функцию, которая находится на пути поиска файлов MATLAB. Для получения дополнительной информации смотрите, Распространяют Нестандартные Данные об Интерполяционной таблице Формата.
Этот пример показывает, как распространить изменения из Редактора Интерполяционной таблицы к переменным рабочей области нестандартного формата. Предположим, что ваша модель Simulink® от Импортирует Нестандартные Данные об Интерполяционной таблице Формата, имеет 3D интерполяционную таблицу, которая получает ее табличные данные из двумерной переменной 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
. Эта функция преобразовывает 3D интерполяционную таблицу строк размера * Столбцы * Высота к двумерной переменной размера (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. Нажмите Yes, чтобы перезаписать переменную 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
рабочей области, вам предлагают заменить ее на числовые данные. Нажмите Yes, чтобы заменить выражение в поле Table data с числовыми данными. Нажмите No, если вы не хотите, чтобы ваш Редактор Интерполяционной таблицы изменения для табличных данных появился в диалоговом окне блока.
В начале сеанса работы с MATLAB Simulink загружает каждый файл настройки sl_customization.m
на пути и выполняет функцию sl_customization
. Выполнение каждой функции устанавливает индивидуальные настройки для того сеанса.
Когда вы выбираете File> Update Block Data в Редакторе Интерполяционной таблицы, редактор проверяет список указателей на функцию в массиве ячеек для cm.LookupTableEditorCustomizer.getTableConvertToCustomInfoFcnHandle
. Если массив ячеек содержит один или несколько указателей на функцию, свойство allowTableConvertLocal
определяет, могут ли изменения в Редакторе Интерполяционной таблицы быть распространены.
Если значение установлено к true
, то табличные данные преобразованы в нестандартный формат в переменной рабочей области.
Если значение установлено к false
, то табличные данные не преобразованы в нестандартный формат в переменной рабочей области.
Если значение установлено к true
, и другая специальная функция задает его, чтобы быть false
, Редактор Интерполяционной таблицы сообщает об ошибке.