% SOCMODELANALYZER Estimate number of operations in a Simulink model. 
%
% SOCMODELANALYZER(modelName) - Generates a report with the estimated
% number of operations in a Simulink model specified by modelName. The
% function generates the report as an Excel(R) spreadsheet and a MAT file.
% It also provides a link to view the report in a separate dialog box. The
% report includes information for each mathematical or logical operator in
% the model, with individual lines for each operator and data type.
%
% report = SOCMODELANALYZER(modelName) - Returns a structure of tables
% containing the report.
%
% SOCMODELANALYZER(modelName, Name, Value, ...) - Generates a report with
% the estimated number of operations in a Simulink model specified by
% modelName with additional options specified by one or more Name, Value
% pairs.
%
% report = SOCMODELANALYZER(modelName, Name, Value, ...) -  Returns a
% structure of tables containing the report with additional options
% specified by one or more Name, Value pairs.
%
% Name-Value pairs:
%
% 'AnalysisMethod' - Specify which method to use for analyzing the Simulink
%       model: 'static' or 'dynamic'. If unspecified, the analysis method
%       is dynamic.
%       Example: 'AnalysisMethod','static'
%
% 'IncludeBlockPath' - Cell array of Simulink subsystem to be included in
%       the estimation report. Subsystems that are not in the list will be
%       excluded from the report. If unspecified, all subsystems are
%       included in the report unless an ExcludeBlockPath list is specified.  
%       Example: 'IncludeBlockPath',{'mymodel.slx', 'mymodel/mysubsystem,'mysubsystem2'}
%
% 'ExcludeBlockPath' - Cell array of Simulink subsystem to be excluded from
%       the estimation report. If unspecified, all subsystems are included
%       in the report unless a BlockPath list is specified.
%       Example: 'ExcludeBlockPath',{'mymodel.slx','mymodel/mysubsystem,'mysubsystem2'}
%
% 'IncludeOperator' - Cell array of operator to be included in the
%       estimation report. Operators that are not in the list will be
%       excluded from the report. If unspecified, all operators are
%       included in the report unless an ExcludeOperator list is specified.  
%       Example: 'IncludeOperator','+'
%                'IncludeOperator',{'+','MUL','GE(>=)'}
%
% 'ExcludeOperator' - Cell array of operator to be excluded from the
%       estimation report. If unspecified, all operators are included in
%       the report unless an Operator list is specified.    
%       Example: 'ExcludeOperator','IF'
%                'ExcludeOperator',{'IF','CALL','ADD(+)'}
%
% Folder' - Specify a folder to store the report. If unspecified,
%       the current working directory will be used. Specified folder is
%       automatically created if it does not exist.  
%       Example: 'Folder','C:/Work/mydir'
%
% 'Verbose' - Specify verbose mode to display messages: 'on', 'off',
%       'quiet'. If unspecified, verbose is off. 
%       Example: 'Verbose','on'
%
% Example1:
% % Generate a report for the number of operation in mymodel.
%   
% socModelAnalyzer('mymodel.slx')
%
% Example2:
% % Count the number of addition and multiplication in mymodel, and
% % generate report in a folder named report.
%   
% socModelAnalyzer('mymodel.slx','IncludeOperator',{'ADD','MUL'},'Folder','report');
% 
% See also socFunctionAnalyzer, socAlgorithmAnalyzerReport.

 
% Copyright 2019-2022 The MathWorks, Inc.

