Можно настроить диалоговое окно для блока MATLAB System путем добавления свойств и методов в соответствующем Системном объекте. Можно добавить вкладки, организованные свойства в группы и разделы, добавить описания блока, управление типом симуляции, и добавить пользовательские кнопки.
Этот пример настраивает диалоговое окно блока для MultipleGroupsWithTabs
Блок MATLAB System путем определения свойства отображает имена и изменения getPropertyGroupImpl
метод.
Измените метку свойства
Чтобы изменить метку свойства, которая появляется на диалоговом окне, добавьте комментарии перед каждым свойством в этом формате %PropertyName Block Dialog Label
без пробела между комментарием и именем свойства. Например, чтобы отобразить StartValue
свойство, как Запускают Значение, задает:
%StartValue Start Value
StartValue = 0
MultipleGroupsWithTabs
Системный объект в этом примере повторно помечает каждое свойство для отображения в диалоговом окне блока MATLAB System.
Организуйте диалоговое окно
MutlitpleGroupsWithTabs
Класс системного объекта задает getPropertyGroupsImpl
метод. В getPropertyGroupsImpl
метод, этот пример задает две вкладки (группы раздела) и три группировки параметра (разделы).
classdef MultipleGroupsWithTabs < matlab.System % MultipleGroupsWithTabs Customize block dialog with multiple tabs and parameter groups. % Public, tunable properties properties %StartValue Start Value StartValue = 0 %EndValue End Value EndValue = 10 Threshold = 1 %BlockLimit Limit BlockLimit = 55 end % Public Nontunable properties(Nontunable) %IC1 First initial condition IC1 = 0 %IC2 Second initial condition IC2 = 10 %IC3 Third initial condition IC3 = 100 %UseThreshold Use threshold UseThreshold (1,1) logical = true end methods (Static, Access = protected) function groups = getPropertyGroupsImpl % Section to always display above any tabs. alwaysSection = matlab.system.display.Section(... 'Title','','PropertyList',{'BlockLimit'}); % Group with no sections initTab = matlab.system.display.SectionGroup(... 'Title','Initial conditions', ... 'PropertyList',{'IC1','IC2','IC3'}); % Section for the value parameters valueSection = matlab.system.display.Section(... 'Title','Value parameters',... 'PropertyList',{'StartValue','EndValue'}); % Section for the threshold parameters thresholdSection = matlab.system.display.Section(... 'Title','Threshold parameters',... 'PropertyList',{'Threshold','UseThreshold'}); % Group with two sections: the valueSection and thresholdSection sections mainTab = matlab.system.display.SectionGroup(... 'Title','Main', ... 'Sections',[valueSection,thresholdSection]); % Return an array with the group-less section, the group with % two sections, and the group with no sections. groups = [alwaysSection,mainTab,initTab]; end end end
Получившееся диалоговое окно
load_system('ShowSystemBlockDialog') open_system('ShowSystemBlockDialog/MATLAB System')
Этот пример настраивает диалоговое окно блока для блока MATLAB System путем определения имен отображения свойства и изменения getPropertyGroupImpl
метод. Эта индивидуальная настройка продемонстрирована с Системным объектом AddPropertySections
.
Измените метки свойства
Чтобы изменить метку свойства, которая появляется на диалоговом окне, добавьте комментарии перед каждым свойством в этом формате %PropertyName Block Dialog Label
без пробела между знаком процента и именем свойства. Например, чтобы отобразить UseAlpha
свойство как альфа Использования, задайте:
%UseAlpha Use alpha
UseAlpha = 0
AddPropertySections
Системный объект, включенный с этим примером, повторно помечает свойства для отображения в диалоговом окне блока MATLAB System.
Организуйте диалоговое окно
Организовывать свойства на диалоговом окне, AddPropertySections
Класс системного объекта задает getPropertyGroupsImpl
метод. В getPropertyGroupsImpl
метод, этот пример задает два раздела, каждого с двумя свойствами.
classdef AddPropertySections < matlab.System % AddPropertySections Customized dialog with two parameter sections % Public, tunable properties properties %NumberOfShapes Number of shapes NumberOfShapes = 10 Alpha = 0.75 end % Public, nontunable properties properties(Nontunable) Coloring (1, 1) {mustBeMember(Coloring,["red","blue","green"])} = "red" %UseAlpha Use alpha UseAlpha (1,1) logical = false end methods (Static, Access = protected) function groups = getPropertyGroupsImpl % Section for the value parameters valueSection = matlab.system.display.Section(... 'Title','Shape parameters',... 'PropertyList',{'NumberOfShapes','Coloring'}); % Section for the threshold parameters shadingSection = matlab.system.display.Section(... 'Title','Shading parameters',... 'PropertyList',{'UseAlpha','Alpha'}); % Return an array with the two sections. groups = [valueSection, shadingSection]; end end end
Получившееся диалоговое окно
load_system('CustomSystemBlockDialog') open_system('CustomSystemBlockDialog/MATLAB System')
Добавьте панель заголовка в блок MATLAB System путем добавления getHeaderImpl
метод к вашему Системному объекту.
Используйте getHeaderImpl
задавать заголовок панели и текст для MyCounter
Система object™. Если вы не задаете getHeaderImpl
, блок не отображает заголовка или текста для панели.
Что касается всего Impl
методы, набор getHeaderImpl
доступ к методу к protected
потому что метод только называется внутренне.
methods (Static, Access = protected) function header = getHeaderImpl header = matlab.system.display.Header('MyCounter',... 'Title','My Enhanced Counter'); end end
Задайте тип симуляции и появляется ли параметр Simulate using на
диалоговом окне блока Simulink® MATLAB System. Опциями симуляции является 'Code generation'
и 'Interpreted mode'
.
Если вы не включаете getSimulateUsingImpl
метод в вашем файле определения класса, Системный объект позволяет и режимы симуляции и значения по умолчанию к 'Code generation'
. Если вы не включаете showSimulateUsingImpl
метод, параметр Simulate using появляется на диалоговом окне блока.
Необходимо установить getSimulateUsingImpl
и showSimulateUsingImpl
методы к static
и доступ для этих методов к protected
.
Используйте getSimulateUsingImpl
указывать, что только интерпретированное выполнение позволено для Системного объекта.
methods(Static,Access = protected) function simMode = getSimulateUsingImpl simMode = 'Interpreted execution'; end end
Получившееся диалоговое окно параметром Simulate using:
Добавьте кнопку в диалоговое окно блока MATLAB System. Эта кнопка открывает фигуру, которая строит функцию пандуса.
Используйте matlab.system.display.Action
задавать функцию MATLAB® или код, сопоставленный с кнопкой в диалоговом окне блока MATLAB System. Пример также показывает, как установить параметры кнопки и использовать actionData
возразите входу, чтобы сохранить указатель фигуры. Эта часть примера кода использует ту же фигуру, когда кнопка нажата многократно, вместо того, чтобы открыть новую фигуру для каждого нажатия кнопки.
methods(Static,Access = protected) function group = getPropertyGroupsImpl group = matlab.system.display.Section(mfilename('class')); group.Actions = matlab.system.display.Action(@(actionData,obj)... visualize(obj,actionData),'Label','Visualize'); end end methods function obj = ActionDemo(varargin) setProperties(obj,nargin,varargin{:}); end function visualize(obj,actionData) f = actionData.UserData; if isempty(f) || ~ishandle(f) f = figure; actionData.UserData = f; else figure(f); % Make figure current end d = 1:obj.RampLimit; plot(d); end end
Полный файл определения класса для диалоговой кнопки
Получившееся диалоговое окно с кнопкой Visualize:
getHeaderImpl
| getPropertyGroupsImpl
| getSimulateUsingImpl
| matlab.system.display.Header
| matlab.system.display.Section
| matlab.system.display.SectionGroup
| showSimulateUsingImpl