Main Content

本页采用了机器翻译。点击此处可查看最新英文版本。

mlreportgen.report.MATLABVariable 类

命名空间: mlreportgen.report
超类: mlreportgen.report.Reporter

MATLAB 变量报告器

描述

创建一个报告 MATLAB® 变量的报告器。

mlreportgen.report.MATLABVariable 类是一个 handle 类。

创建对象

描述

rptr = mlreportgen.report.MATLABVariable 根据默认模板创建 MATLAB 变量报告器。在将此报告器添加到报告之前,请使用其属性指定要报告的变量名称。

rptr = mlreportgen.report.MATLABVariable(variable) 为指定的 MATLAB variable 创建 MATLAB 变量报告器。要指定局部变量,请指定其名称,例如 MATLABVariable(x)。要指定 MATLAB 工作区变量,请将其名称指定为字符向量或字符串标量,例如 MATLABVariable('x')。要指定其他报告选项,请使用此报告器的属性。

示例

rptr = mlreportgen.report.MATLABVariable(Name=Value) 创建一个 MATLAB 变量报告器,其选项由一个或多个 Name=Value 对参量指定。Name 是属性名称,Value 是相应的值。您可采用任意顺序指定多个名称-值对组参量,例如 Name1=Value1,...,NameN=ValueN

输入参量

全部展开

MATLAB 变量名称,指定为字符串标量、字符向量或局部变量名称。要指定局部变量,请指定其名称,例如 MATLABVariable(x)。要指定 MATLAB 工作区变量,请将其名称指定为字符向量或字符串标量,例如 MATLABVariable('x')。有关输入的更多信息,请参阅 Variable 属性。

属性

全部展开

MATLAB 变量名称,指定为字符向量或字符串标量。指定的变量可以是以下任意数据类型:

  • 字符向量

  • 字符串标量

  • 元胞向量或元胞数组

  • 逻辑标量、逻辑向量或逻辑数组

  • 数值标量、数值数组或数值向量

  • MATLAB 表

  • MATLAB 对象向量或对象数组

  • Simulink® 对象

  • Stateflow® 对象

  • 图形对象

  • MATLAB 结 构体、结构体向量或结构体数组

  • 枚举

变量的位置,指定为以下字符串之一或字符向量:

  • "MATLAB" - 基础工作区

  • "MAT-File" - 此报告器的 FileName 属性中指定的 MAT 文件

  • "Global" - 全局命名空间

  • "Local" - 本地命名空间,通常是创建此报告器的函数或工作区的命名空间

  • "Model" - 此报告器的 FileName 属性中指定的 Simulink Report Generator™ 模型的工作区

  • "User-Defined" - setVariableValue 方法设置要报告的值,并将此属性设置为 "User-Defined"

包含变量的 MAT 文件或 Simulink 模 型的名称,指定为字符串标量或字符向量。仅当 Location 属性值为 MAT-FileModel 时,此属性才适用。如果 LocationMAT-File,则文件名就是从中获取变量的 MAT 文件的名称。如果 LocationModel,那么 FileName 就是包含该变量的 Simulink 模 型文件的名称。

变量值的格式,指定为以下字符串或字符向量之一:

  • "Auto" - 根据值的数据类型将变量值格式化为表格或段落。

    格式化为表格的数据类型包括:

    • 元胞数组

    • 逻辑数组

    • 数值数组

    • MATLAB 表

    • Simulink 对象

    • Stateflow 对象

    • 图形对象

    • MATLAB 结构体或结构体数组

    • MATLAB 对象或对象数组

    • 定义属性的 MATLAB 枚举类

    格式化为段落的数据类型包括:

    • 元胞向量

    • 逻辑标量或向量

    • 数值标量或矢量

    • 字符或字符向量

    • 字符串

    • MATLAB 结构体向量

    • MATLAB 对象向量

    • MATLAB 未定义属性的枚举类

  • "Table" - 以表格形式格式化变量值。默认以段落形式出现的变量被格式化为表格条目。作为层次结构对象的变量(例如 MATLAB 结构、MATLAB 对象、Simulink 对象、Stateflow 对象或图形对象)可以具有本身就是对象的属性。在这种情况下,层次结构变得扁平,并且属性值显示为指向该对象属性表的超链接。对象属性表还具有指向原始表的超链接。

  • "Paragraph" - 将变量值格式化为段落。默认情况下格式化为表格的变量将被展平并格式化为段落。

  • "Inline Text" - 将变量格式化为与周围文本一致。

MATLABVariable 报告器使用的表报告器来格式化变量值,指定为 mlreportgen.report.BaseTable 对象。要自定义表格的外观,请修改默认的 BaseTable 报告器属性或将其替换为自定义的 BaseTable 报告器。如果您向默认或自定义报告器的 Title 属性添加内容,则该内容将出现在生成的报告中的表标题前面。

段落格式化程序对象用于格式化 MATLAB 变量的值,指定为 mlreportgen.dom.Paragraph 对象。要自定义段落的外观,请修改 DOM Paragraph 对象属性或将该对象替换为自定义的 Paragraph 对象。如果您向默认或替换段落对象添加内容,则该内容会出现在生成的报告中的变量内容前面。

文本格式化程序对象,用于格式化表格或段落中的 MATLAB 变量文本值,指定为 mlreportgen.dom.Text 对象。要自定义文本的外观,请修改 DOM Text 对象属性或用自定义的 Text 对象替换该对象。如果向默认或替换文本对象添加内容,则该内容会出现在生成的报告中的变量内容前面。

要显示的最大表列数,指定为正整数。对于使用表报告的数组变量,如果列数大于 MaxCols 属性的值,则对表进行垂直切片。切片将表分成多个表。

对于结构化对象或结构化对象数组的变量,要报告的最大级别数,指定为非负整数。小于或等于 DepthLimit 值的级别将被展平为一系列相互链接的表(请参阅 FormatPolicy 属性)。不会报告超过深度限制的水平。如果将 DepthLimit 属性设置为 0,则结构化对象不会扩展。

要报告的对象层次结构中的最大对象数,指定为正整数。

是否包含标题,指定为 truefalse。标题包含变量名称和可选的数据类型。如果 IncludeTitletrue,则包含标题。默认情况下,标题仅包含变量的名称。要包含变量的数据类型,请将 ShowDataType 属性设置为 true

要报告的变量的标题,指定为字符向量、字符串标量、mlreportgen.dom.Text 对象、mlreportgen.dom.InternalLink 对象或 mlreportgen.dom.ExternalLink 对象。

如果将 FormatPolicy 属性设置为 "Inline Text" 并且将 Title 属性设置为:

  • DOM 对象,DOM 对象指定的格式被忽略

  • mlreportgen.dom.InternalLinkmlreportgen.dom.ExternalLink 对象,链接文本用于标题,但标题不是链接

在这两种情况下,要格式化标题,请使用此 MATLABVariable 报告器的 TextFormatter 属性。

如果不指定 Title 属性,则标题就是变量名称。

是否在标题中显示变量的数据类型,指定为 truefalse

是否显示具有空值的属性,指定为 truefalseShowEmptyValues 属性仅适用于 MATLAB 对象、Simulink 对象和 Stateflow 对象变量。

是否显示使用默认值的属性,指定为 truefalseShowDefaultValues 属性仅适用于 MATLAB 对象、Simulink 对象和 Stateflow 对象变量。

用于从报告中过滤变量属性的函数或表达式。指定一个函数作为函数句柄。将表达式指定为字符向量或字符串标量。此属性仅适用于包含对象的变量。如果不提供 PropertyFilterFcn,则变量的所有属性都将包含在报告中。

如果提供函数句柄,则关联函数必须:

  • 请考虑以下参量:

    • variableName - 正在报告的变量的名称

    • variableObject - 被报告的变量

    • propertyName - 正在报告的变量的属性名称

  • 返回 true 以从报告中过滤指定属性,或返回 false 以将该属性包含在报告中。

例如,此代码阻止显示 polyshape 对象的 NumRegionsNumHoles 属性。

import mlreportgen.report.*

rpt = mlreportgen.report.Report('variablerpt','pdf');
open(rpt);

pgon = polyshape([0 0 2 2],[2 0 0 2]);
mlVar = mlreportgen.report.MATLABVariable(pgon);
mlVar.PropertyFilterFcn = @varPropertyFilter;
add(rpt,mlVar);

close(rpt);
rptview(rpt);

function tf = varPropertyFilter(~,variableObject,propertyName)
if isa(variableObject, "polyshape")
    tf = (propertyName == "NumRegions") ||  ...
        (propertyName == "NumHoles");
    
end
end

如果您提供字符串标量或字符向量,它必须包含表达式。表达式:

  • 可以使用变量 variableNamevariableObjectpropertyName

  • 必须将变量 isFiltered 设置为 true 才能从报告中过滤指定的属性,设置为 false 才能将属性包含在报告中

例如,此代码从报告中过滤掉 polyshape 对象的 NumHoles 属性。

import mlreportgen.report.*

rpt = mlreportgen.report.Report('variablerpt','pdf');
open(rpt);


pgon = polyshape([0 0 2 2],[2 0 0 2]);
mlVar = mlreportgen.report.MATLABVariable(pgon);
mlVar.PropertyFilterFcn = "isFiltered = " + ...
            "isa(variableObject, 'polyshape') && " + ...
            "propertyName == 'NumHoles';";
add(rpt,mlVar);

close(rpt);
rptview(rpt);

用于显示非整数数值的格式或精度。

将格式指定为字符串标量或字符向量。请参阅 sprintf 参考页面上的 formatSpec 参量。

将精度指定为正整数。请参阅 num2str 参考页面上的 precision 参量。

示例: "%.2f" 显示小数点右边有两位数字的双精度值。

示例: 2 显示最多两位有效数字。

此报告器的模板来源,指定为以下选项之一:

  • 字符向量或字符串标量,指定包含此报告器模板的文件的路径

  • 报告器或报告,其模板用于此报告器,或其模板库包含此报告器的模板

  • DOM 文档或文档部件,其模板用于此报告器,或其模板库包含此报告器的模板

指定的模板必须与此报告器所追加到的报告属于同一类型。例如,对于 Microsoft® Word 报 告,TemplateSrc 必须是 Word 报告模板。如果 TemplateSrc 属性为空,则此报告器将使用默认报告器模板作为报告的输出类型。

此报告器的模板名称,指定为字符向量或字符串标量。该报告器的模板必须位于该报告器的模板源 (TemplateSrc) 的模板库中。

此报告器的超链接目标,指定为指定链接目标 ID 的字符向量或字符串标量,或指定为 mlreportgen.dom.LinkTarget 对象。字符向量或字符串标量值被转换为 LinkTarget 对象。链接目标在输出报告中紧接着此报告器的内容。

方法

全部展开

示例

全部折叠

此示例显示如何报告 MATLAB 变 量。局部变量仅使用其名称作为 MATLABVariable 类的输入,而工作区变量使用字符串。示例的第一部分使用默认属性设置,第二部分将显示更改为表格。

注意

在运行此示例之前,请在基础 MATLAB 工作区中创建此变量:

workspace_var = ['Workspace variable input ',...
   'specified as a string'];

rpt = mlreportgen.report.Report("MyReport","pdf");

local_var = ['Local variable input specified ',...
   'using its variable name'];

chapter = mlreportgen.report.Chapter();
chapter.Title = "MATLAB Variable Reporter Example";

% Format using default paragraphs
rptr_local1 = mlreportgen.report.MATLABVariable...
   (local_var);
rptr_workspace1 = mlreportgen.report.MATLABVariable...
   ("workspace_var");

add(chapter,rptr_local1)
add(chapter,rptr_workspace1)

% Format as a table
rptr_local2 = mlreportgen.report.MATLABVariable...
   (local_var);
rptr_workspace2 = mlreportgen.report.MATLABVariable...
   ("workspace_var");
rptr_local2.FormatPolicy = 'Table';
rptr_workspace2.FormatPolicy = 'Table';

add(chapter,rptr_local2)
add(chapter,rptr_workspace2)
add(rpt,chapter)
 
close(rpt)
rptview(rpt)

版本历史记录

在 R2018b 中推出