이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
setSeparators
클래스: slmetric.dashboard.Group
네임스페이스: slmetric.dashboard
(제거 예정) 메트릭 대시보드 그룹 측면에 줄 지정
Metrics Dashboard 사용자 인터페이스, metricdashboard
기능, slmetric
패키지 API 및 해당 사용자 정의는 향후 릴리스에서 제거될 예정입니다. 자세한 내용은 Migrating from Metrics Dashboard to Model Maintainability Dashboard를 참조하세요.
설명
setSeparators(
은 S
)slmetric.dashboard.Group
객체의 측면에 선이 있는지 여부를 지정합니다.
입력 인수
입력은 다음 필드로 구성된 구조 배열입니다.
S.top
S.bottom
S.left
S.right
각 필드는 1
또는 0
로 설정되어야 합니다. 1
값은 해당 그룹 쪽에 선이 있음을 나타냅니다. 0
값은 해당 그룹 쪽에 선이 없음을 나타냅니다. 화면 크기가 바뀌더라도 그룹 면이 항상 동일하다는 것을 나타내기 위해 하나의 구조체를 전달하면 됩니다. 4개의 구조를 전달한다는 것은 화면 너비 크기가 변경됨에 따라 그룹 측면이 다른 구분 기호를 가질 수 있음을 나타냅니다. setWidths
방법을 사용하여 최대 4개의 서로 다른 너비를 지정합니다.
데이터형: char
예제
비가상 블록 수를 계산하는 사용자 지정 메트릭을 만듭니다. 지표 대시보드에 이 지표를 표시하려면 위젯을 지정하세요. 크기 그룹에 추가합니다.
다음을 입력하여 vdp
모델을 엽니다.
openExample('simulink_general/VanDerPolOscillatorExample')
사용자 정의 메트릭 클래스를 만듭니다.
className = 'nonvirtualblockcount';
slmetric.metric.createNewMetricClass(className);
이 코드를 nonvirtualblockcount.m
파일에 추가하여 비가상 블록 수 메트릭을 만듭니다.
classdef nonvirtualblockcount < slmetric.metric.Metric %nonvirtualblockcount calculates number of nonvirtual blocks per level. % BusCreator, BusSelector and BusAssign are treated as nonvirtual. properties VirtualBlockTypes = {'Demux','From','Goto','Ground', ... 'GotoTagVisibility','Mux','SignalSpecification', ... 'Terminator','Inport'}; end methods function this = nonvirtualblockcount() this.ID = 'nonvirtualblockcount'; this.Name = 'Nonvirtual Block Count'; this.Version = 1; this.CompileContext = 'None'; this.Description = 'Algorithm that counts nonvirtual blocks per level.'; this.ComponentScope = [Advisor.component.Types.Model, ... Advisor.component.Types.SubSystem]; this.AggregationMode = slmetric.AggregationMode.Sum; this.ResultChecksumCoverage = true; this.SupportsResultDetails = true; end function res = algorithm(this, component) % create a result object for this component res = slmetric.metric.Result(); % set the component and metric ID res.ComponentID = component.ID; res.MetricID = this.ID; % Practice D1=slmetric.metric.ResultDetail('identifier 1','Name 1'); D1.Value=0; D1.setGroup('Group1','Group1Name'); D2=slmetric.metric.ResultDetail('identifier 2','Name 2'); D2.Value=1; D2.setGroup('Group1','Group1Name'); % use find_system to get all blocks inside this component blocks = find_system(getPath(component), ... 'SearchDepth', 1, ... 'Type', 'Block'); isNonVirtual = true(size(blocks)); for n=1:length(blocks) blockType = get_param(blocks{n}, 'BlockType'); if any(strcmp(this.VirtualBlockTypes, blockType)) isNonVirtual(n) = false; else switch blockType case 'SubSystem' % Virtual unless the block is conditionally executed % or the Treat as atomic unit check box is selected. if strcmp(get_param(blocks{n}, 'IsSubSystemVirtual'), ... 'on') isNonVirtual(n) = false; end case 'Outport' % Outport: Virtual when the block resides within % SubSystem block (conditional or not), and % does not reside in the root (top-level) Simulink window. if component.Type ~= Advisor.component.Types.Model isNonVirtual(n) = false; end case 'Selector' % Virtual only when Number of input dimensions % specifies 1 and Index Option specifies Select % all, Index vector (dialog), or Starting index (dialog). nod = get_param(blocks{n}, 'NumberOfDimensions'); ios = get_param(blocks{n}, 'IndexOptionArray'); ios_settings = {'Assign all', 'Index vector (dialog)', ... 'Starting index (dialog)'}; if nod == 1 && any(strcmp(ios_settings, ios)) isNonVirtual(n) = false; end case 'Trigger' % Virtual when the output port is not present. if strcmp(get_param(blocks{n}, 'ShowOutputPort'), 'off') isNonVirtual(n) = false; end case 'Enable' % Virtual unless connected directly to an Outport block. isNonVirtual(n) = false; if strcmp(get_param(blocks{n}, 'ShowOutputPort'), 'on') pc = get_param(blocks{n}, 'PortConnectivity'); if ~isempty(pc.DstBlock) && ... strcmp(get_param(pc.DstBlock, 'BlockType'), ... 'Outport') isNonVirtual(n) = true; end end end end end blocks = blocks(isNonVirtual); res.Value = length(blocks); end end end
메트릭 저장소에 새 메트릭을 등록합니다.
[id_metric,err_msg] = slmetric.metric.registerMetric(className);
시작하려면 메트릭 대시보드 레이아웃에 대한 기본 구성을 엽니다.
conf = slmetric.dashboard.Configuration.open();
slmetric.dashboard.Configuration
개체에서 slmetric.dashboard.Layout
개체를 가져옵니다.
layout = getDashboardLayout(conf);
레이아웃 개체에 있는 위젯 개체를 가져옵니다.
layoutWidget = getWidgets(layout);
Simulink 블록 수 메트릭을 나타내는 위젯을 제거합니다.
sizeGroup = layoutWidget(2); sizeGroupWidgets = sizeGroup.getWidgets(); sizeGroup.removeWidget(sizeGroupWidgets(1));
비가상 블록 수 메트릭을 표시하는 위젯을 추가합니다. 사용자 정의 위젯의 경우 기본 시각화 유형은 단일 값입니다. 다른 시각화 기술을 사용하려면 VisualizationType
속성에 다른 값을 지정하십시오.
newWidget = sizeGroup.addWidget('Custom', 1); newWidget.Title = ('Nonvirtual Block Count'); newWidget.setMetricIDs('nonvirtualblockcount'); newWidget.setWidths(slmetric.dashboard.Width.Medium); newWidget.setHeight(70);
사용자 정의 위젯을 그룹의 다른 위젯과 구분하는 선이 있는지 여부를 지정합니다. 이 명령은 위젯 오른쪽에 줄이 있음을 지정합니다.
s.top = false; s.bottom = false; s.left = false; s.right = true; newWidget.setSeparators([s, s, s, s]);
구성 개체를 저장합니다. 이 명령은 API 정보를 XML 파일로 직렬화합니다.
save(conf,'Filename','DashboardConfig.xml');
활성 구성을 설정합니다.
slmetric.dashboard.setActiveConfiguration(fullfile(pwd,'DashboardConfig.xml'));
vdp
모델에 대한 지표 대시보드를 엽니다.
metricsdashboard vdp
모든 메트릭을 실행하려면 모든 메트릭 버튼을 클릭하세요.
버전 내역
R2018b에 개발됨Metrics Dashboard 사용자 인터페이스, metricdashboard
기능, slmetric
패키지 API 및 해당 사용자 정의는 향후 릴리스에서 제거될 예정입니다. 자세한 내용은 Migrating from Metrics Dashboard to Model Maintainability Dashboard를 참조하세요.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)