主要内容

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

mlreportgen.report.MATLABCode 类

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

MATLAB 代码报告器

自 R2021a 起

描述

使用 mlreportgen.report.MATLABCode 类的对象在报告中包含语法高亮的 MATLAB® 代码。如果您需要 DOM 对象而不是 Report 对象,请将方法 getSyntaxColoredCodemlreportgen.report.MATLABCode 对象结合使用。 (自 R2024b 起)

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

类属性

HandleCompatible
true

有关类属性的信息,请参阅类属性

创建对象

描述

reporter = mlreportgen.report.MATLABCode 根据默认模板创建一个空的 MATLABCode 报告对象。您必须通过设置 FileName 属性来指定 MATLAB 代码文件,或者通过设置 Content 属性来指定代码内容。使用其他属性来指定报告器选项。

reporter = mlreportgen.report.MATLABCode(filename) 创建一个 MATLABCode 报告器,并将 FileName 属性设置为 filename

示例

reporter = mlreportgen.report.MATLABCode(Name=Value) 使用名称-值参量设置属性。您可以按任意顺序指定多个名称-值参量。

属性

全部展开

包含 MATLAB 代码的文件的路径和文件名,指定为字符向量或字符串标量。该文件可以具有 .m.mlx 扩展名。如果您设置此属性,则 MATLABCode 报告器会将 Content 属性设置为包含指定文件中所含代码的字符串标量。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

数据类型: char | string

MATLAB 代码,指定为字符向量或字符串标量。仅当未设置 FileName 属性时才设置此属性。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

数据类型: char | string

是否对代码应用智能缩进,指定为 truefalse

属性:

GetAccess
public
SetAccess
public

数据类型: logical

是否包含代码复杂性,指定为 truefalse。如果值为 true,则报告包括 MATLAB 代码所包含的每个函数的 McCabe 圈复杂度。

属性:

GetAccess
public
SetAccess
public

数据类型: logical

代码复杂度报告器,指定为 mlreportgen.report.BaseTable 对象。BaseTable 报告器用于报告和格式化代码复杂度表格数据。该属性的默认值为 BaseTable 对象,其中 TableStyleName 属性设置为 "MATLABCodeTable",其他属性设置为默认值。您可以通过自定义默认报告器或将其替换为自定义 BaseTable 报告器来自定义表的外观。您在默认或替换 BaseTable 报告器的 Title 属性中指定的任何内容都会出现在生成的报告的标题之前。

属性:

GetAccess
public
SetAccess
public

该报告器的模板来源,以下列方式之一指定:

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

  • 此报告器使用的模板或其模板库中包含此报告器模板的报告器或报告

  • 文档对象模型 (DOM) 文档或文档部分,该报告器使用其模板或其模板库包含该报告器的模板

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

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

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

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

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

属性:

GetAccess
public
SetAccess
public

方法

全部展开

示例

全部折叠

报告函数 myAdd.m 的语法高亮代码。

创建报告。

import mlreportgen.dom.*
import mlreportgen.report.*

rpt = Report("MyReport","pdf");

创建一个章节。

chap = Chapter("The myAdd Function");

创建一个 MATLABCode 报告器,报告 myAdd.m 的内容。

mCode = MATLABCode("myAdd.m");

将报告器添加到章节,将章节添加到报告中。如果您需要向 DOM 对象添加语法高亮的 MATLAB 代码,请参阅 将语法高亮的 MATLAB 代码 DOM 对象添加到报告中

append(chap,mCode);
append(rpt,chap);

关闭报告并打开查看器。

close(rpt);
rptview(rpt);

以下是报告中语法突出显示的代码。

使用 getSyntaxColoredCode 方法从 MATLABCode 报告器读取的代码中创建 DOM 对象。getSyntaxColoredCode 根据报告格式和 MATLAB 代码的来源返回不同的 DOM 对象类型。

MATLAB 代码源

报告格式

DOM 对象

.mlx

DOCX

mlreportgen.dom.EmbeddedObject

.mlx

HTML

HTML 文件

mlreportgen.dom.RawText

.mlx

PDF

mlreportgen.dom.HTML

.m

DOCX

HTML

HTML 文件

PDF

mlreportgen.dom.HTMLFile

使用 Content 属性直接指定的内容

DOCX

HTML

HTML 文件

PDF

mlreportgen.dom.HTMLFile

import mlreportgen.dom.*
import mlreportgen.report.*

创建报告。

rpt = Report("MyReport","pdf");

创建一个章节。

chap = Chapter("The myAdd Function");

创建一个 DOM 表。

table = mlreportgen.dom.Table(2);
table.Style = {...
    Border("solid"),...
    ColSep("solid"),...
    RowSep("solid"),...
    Width("100%")...
    };
table.TableEntriesVAlign = "middle";

创建表行。

tr = TableRow();

创建第一个表条目并向其中附加一些内容。

entry11 = TableEntry();
append(entry11,"Addition");

为 MATLAB 代码创建另一个表条目。

entry12 = TableEntry();

创建一个 MATLABCode 报告器,报告 myAdd.m 的内容。

mCode = MATLABCode("myAdd.m");

根据报告结果创建一个 DOM 对象。

synatxColorCode = getSyntaxColoredCode(mCode,rpt)
synatxColorCode = 
  HTMLFile with properties:

    KeepInterElementWhiteSpace: 0
                EMBaseFontSize: 12
                       HTMLTag: 'div'
                     StyleName: []
                         Style: {1×0 cell}
              CustomAttributes: []
                        Parent: []
                      Children: [1×1 mlreportgen.dom.Container]
                           Tag: 'dom.HTMLFile:50558'
                            Id: '50558'

将代码的语法颜色呈现添加到表条目中。

append(entry12,synatxColorCode);

将表条目附加到表行,并将表行附加到表。

append(tr,entry11);
append(tr,entry12);
append(table,tr);

将表添加到章节中,将章节添加到报告中。

append(chap,table);
append(rpt,chap);

关闭报告并打开查看器。

close(rpt);
rptview(rpt);

版本历史记录

在 R2021a 中推出

全部展开