主要内容

创建报表生成器

这个例子展示了如何创建一个简单的报告来解释和说明魔术方块-矩阵,它的列、行和对角线都是相同的数字。看到魔术

请注意

完整的示例代码包含在分步说明之后。

  1. 导入基类。

    为消除需要使用完全限定的报表名称和DOM API对象的需要,请使用这些语句。例如,而不是使用mlreportgen.report.report,你可以使用报告

    导入mlreportgen.report.*导入mlreportgen.dom*
  2. 创建一个报表对象。

    创建报表对象。使用“魔法”作为其文件名和“html”作为其报告类型。

    rpt =报告(“魔法”、“html”);

    要自定义应用于整个报告的属性,请参见mlreportgen.report.report

  3. 添加标题页。

    创建标题页并指定标题、副标题和作者。然后,将标题页添加到报告中。

    tp=滴定页;tp.Title=‘魔方’;tp.Subtitle='列、行、对角线:所有相等的和';tp.作者='Albrecht Durr';附加(rpt,tp);

    标题页“魔术方块”,副标题“列,行,对角线:所有相等的总和”,作者“Albrecht Durer”,和日期

    要自定义其他标题页属性,请参见mlreportgen.report.TitlePage

  4. 添加目录。

    将默认目录对象添加到报告中。

    附加(rpt,目录);

    目录列出了三章:“导言”、“10乘10幻方”和“25乘25幻方”

    要自定义目录,请参见mlreportgen.report.TableOfContents

  5. 添加章节和章节节。

    为简介创建章节对象并指定章节标题。添加一个章节,向该章节添加一个段落,然后将该章节添加到章节。创建另一个章节并向其添加一个段落。

    ch1 =章;ch1。Title =“介绍”;sec1 =节;sec1。Title = '什么是魔方?';para = Paragraph(['A magic square is an n × n matrix '…'从整数1到N^2 '…'具有相等的行、列和对角线和']);append(sec1,para) append(ch1,sec1) sec2 = Section; sec2.Title = 'Albrecht Durer and the Magic Square'; para = Paragraph([ ... 'The German artist Albrecht Durer (1471-1528) created '... 'many woodcuts and prints with religious and '... 'scientific symbolism. One of his most famous works, '... 'Melancholia I, explores the depressed state of mind '... 'which opposes inspiration and expression. '... 'Renaissance astrologers believed that the Jupiter '... 'magic square (shown in the upper right portion of '... 'the image) could aid in the cure of melancholy. The '... 'engraving''s date (1514) can be found in the '... 'lower row of numbers in the square.']); append(sec2,para) append(ch1,sec2)

    第一章分两节,“什么是魔方”和“阿尔布雷希特·杜勒与魔方”

    有关自定义章节和节的信息,请参见mlreportgen.report.Chaptermlreportgen.report.Section分别。

  6. 添加一个数字。

    在图形窗口中创建Durer的图像。在MATLAB图形中创建图像。将图形添加到简介章节的第二部分,然后将章节添加到报告中。

    durerImage =负载((“durer.mat”),“垫”);图(“单位”,“像素”、“位置”,…200年[200大小(durerImage.X, 2) *。5……大小(durerImage.X 1) *。5);图像(durerImage.X);colormap (durerImage.map);轴('图像');集(gca、“Xtick”,[],“Ytick”,[],…'Units','normal','Position',[0 0 1 1]);append(rpt,ch1) close gcf

    版画:Albrecht Durer的《忧郁症I》

    有关图形的更多信息,请参见mlreportgen.report.Figure。有关图像的详细信息,请参阅mlreportgen.report.FormalImage

  7. 添加一个表。

    添加另一个章节对象并指定其标题。指定MATLAB代码来创建一个10乘10的幻方。将结果添加到表中,并设置这些表属性:

    • 行和列分隔符

    • 表边境

    • 表条目的对齐

    然后,将表格添加到章节中,并将章节添加到报告中。

    ch2 =(章);ch2。Title = sprintf('10 x 10 Magic Square');平方=魔法(10);台=表(广场);资源描述。风格={…RowSep(“固体”、“黑色”,“1 px”),…ColSep(“固体”、“黑色”,“1 px”),};资源描述。Border = 'double'; tbl.TableEntriesStyle = {HAlign('center')}; append(ch2,tbl); append(rpt,ch2);

    第2章标题为10×10幻方,包含一个包含幻方的带边框表格。

    有关表格的更多信息,请参见mlreportgen.dom.Table

  8. 在章节中添加一个MATLAB图形。

    添加另一个章节对象并指定其标题。指定MATLAB代码来创建一个25乘25的幻方和幻方的彩色编码图形。然后,创建一个图形对象并设置其高度、宽度和标题。在章节中添加图形,在报告中添加章节。

    甲基=(章);甲基。Title = sprintf('25 x 25魔术方块');平方=魔法(25);clf;imagesc(square) set(gca,'Ydir','normal') axis equal axis tight图=图(gcf);fig.Snapshot.Height =“4”;fig.Snapshot.Width = ' 6 ';fig.Snapshot.Caption = sprintf('25 x 25 Magic Square');追加(ch3、无花果); append(rpt,ch3); delete(gcf)

    第3章的标题是25 × 25魔术方块,包含了一个用颜色编码的魔术方块图形。

    有关图形的更多信息,请参见mlreportgen.report.Figure

  9. 关闭并运行报告。

    关闭(rpt)rpt视图(rpt)

完整的代码是:

导入mlreportgen.report.*导入mlreportgen.dom.*rpt=report('magic','html');tp=滴定页;tp.Title=‘魔方’;tp.Subtitle='列、行、对角线:所有相等的和';tp.作者='Albrecht Durr';附加(rpt,tp);附加(rpt,目录);ch1=章节;ch1.标题=‘引言’;sec1=截面;sec1.Title='什么是幻方?';para=段落(['幻方是一个N乘N的矩阵'…',由行、列和对角线和相等的整数1到N^2'…'构成]);追加(sec1,para)追加(ch1,sec1)sec2=节;sec2.标题=‘阿尔布雷希特·杜勒和魔方’;段落(德国艺术家阿尔布雷希特·杜勒(1471-1528)创作了许多带有宗教和科学象征意义的木刻画和版画。他最著名的作品之一是《忧郁症一号》,探讨了压抑的精神状态,它反对灵感和表达。《文艺复兴占星家》认为木星是“魔方”(如图右上角所示)有助于治疗忧郁症。雕刻的日期(1514年)可在方框中的下一行数字中找到。);附加(sec2,para)附加(ch1,sec2)dureImage=load(which('durer.mat'),'-mat');图形('Units','Pixels','Position,…[200大小(dureImage.X,2)*.5…大小(durerImage.X,1)*.5]);图像(durerImage.X);彩色贴图(durerImage.map);轴('image');集合(gca,'Xtick',[],'Ytick',[],…'单位','normal','Position','Position',[001]);附加(sec2,Figure)附加(rpt,ch1)关闭gcf ch2=Chapter();ch2.Title=sprintf('10x10幻方';Square=Magic(10);tbl=Table={……行('solid','black','1px'),…ColSep('solid','black','1px'),};tbl.Border='double';tbl.TableEntriessStyle={HAlign('center');append(ch2,tbl);append(rpt,ch2);ch3=Chapter();ch3.Title=sprintf('25x25幻方');Square=Magic(25);clf;imagesc(Square)set(gca,'Ydir','normal'))轴等轴紧图(gcf);fig.Snapshot.Height='4in';fig.Snapshot.Width='6in';fig.Snapshot.Caption=sprintf('25x25幻方');append(ch3,fig);append(rpt,ch3);delete(gcf)close(rpt)rpt view(rpt)

另请参阅