Диалоговое окно для блока MATLAB System можно настроить путем добавления свойств и методов в соответствующий объект System. Можно добавлять вкладки, упорядоченные свойства в группы и разделы, добавлять описания блоков, управление типами моделирования и добавлять пользовательские кнопки.
В этом примере настраивается диалоговое окно блока для MultipleGroupsWithTabs Системный блок MATLAB путем указания отображаемых имен свойств и изменения getPropertyGroupImpl способ.
Изменить метку свойства
Чтобы изменить метку свойства, отображаемую в диалоговом окне, добавьте комментарии перед каждым свойством в этом формате %PropertyName Block Dialog Label без пробелов между комментарием и именем свойства. Например, для отображения StartValue в качестве начального значения укажите:
%StartValue Start Value
StartValue = 0
MultipleGroupsWithTabs Системный объект в этом примере повторно маркирует каждое свойство для отображения в диалоговом окне «Системный блок MATLAB».
Диалоговое окно «Организация»
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 путем указания отображаемых имен свойств и изменения getPropertyGroupImpl способ. Эта настройка демонстрируется с помощью объекта System AddPropertySections.
Изменение меток свойств
Чтобы изменить метку свойства, отображаемую в диалоговом окне, добавьте комментарии перед каждым свойством в этом формате %PropertyName Block Dialog Label без пробела между знаком процента и именем свойства. Например, для отображения UseAlpha в качестве свойства «Использовать альфа» укажите:
%UseAlpha Use alpha
UseAlpha = 0
AddPropertySections Системный объект, включенный в этот пример, повторно маркирует свойства для отображения в диалоговом окне «Системный блок MATLAB».
Диалоговое окно «Организация»
Чтобы упорядочить свойства в диалоговом окне, 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 путем добавления getHeaderImpl к объекту System.
Использовать 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
Укажите тип моделирования и укажите, отображается ли параметр «Моделирование с помощью» в
диалоговом окне Блок системы Simulink ® MATLAB (Simulate ® MATLAB System block). Параметры моделирования: 'Code generation' и 'Interpreted mode'.
Если вы не включаете getSimulateUsingImpl метод в файле определения класса, объект System допускает как режимы моделирования, так и значения по умолчанию 'Code generation'. Если вы не включаете showSimulateUsingImpl в диалоговом окне блока появится параметр «Моделирование с использованием».
Необходимо установить getSimulateUsingImpl и showSimulateUsingImpl методы для static и доступ для этих методов к protected.
Использовать getSimulateUsingImpl чтобы указать, что для объекта System разрешено только интерпретированное выполнение.
methods(Static,Access = protected) function simMode = getSimulateUsingImpl simMode = 'Interpreted execution'; end end
Полученное диалоговое окно с параметром Simulate using:

Добавьте кнопку в диалоговое окно Блок системы MATLAB (MATLAB System block). Эта кнопка открывает рисунок, отображающий функцию пандуса.
Использовать matlab.system.display.Action для определения функции или кода MATLAB ®, связанных с кнопкой в диалоговом окне Блок системы MATLAB. В примере также показано, как задать опции кнопки и использовать 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