主要内容

保持互动MATLAB报告

这个例子展示了如何使用报表资源管理器创建基本报表。本报告解释并说明了魔方——矩阵的列、行和对角线加起来都是相同的数(请参阅魔法MATLAB中的函数引用®文档)。

要创建此报告,您需要执行以下主要任务:

请注意

本例不需要熟悉MATLAB软件。但是,MATLAB知识有助于理解生成报告期间执行的MATLAB代码。

这个例子包含不同类型的报表创建和生成任务的单独部分。每一节都建立在前一节的基础上。但是,如果你想在没有完成前面的部分的情况下完成后面的部分,你可以查看完整的报告设置文件:魔方报告

创建报表设置文件

要设置魔方报告,首先创建一个设置文件来存储设置。然后将MATLAB对象(称为组件)添加到设置中,以指定报告内容。

创建报表设置文件:

  1. 启动MATLAB软件会话。

  2. 打开报表资源管理器。从MATLAB工具条,在应用程序选项卡,在数据库连接和报告部分中,点击报告生成器

  3. 选择文件>创建报表设置文件。新的报表设置具有默认名称Unnamed.rpt

  4. 在右侧的属性窗格中:

    1. 若要将报表保存在当前工作文件夹中,请选择当前工作目录目录列表。

    2. 文件格式HTML (from template)以HTML格式生成报告输出。使用(模板)选项以可展开和折叠的格式创建报表内容表。

    3. 报告描述文本框中,将现有文本替换为以下文本。

      该报告创建了一系列魔术方块,并将它们显示为图像。魔方是一个矩阵,其中的列、行和对角线加起来都是相同的数。

    请注意

    当您更改属性窗格字段时,其背景颜色也会更改。这表明对该字段有未应用的更改。只要你对另一个组件执行任何操作,MATLAB报表生成器应用这些更改,背景颜色再次变成白色。

  5. 保存您的报告。选择文件>另存为并命名您的报告设置文件magic_squares.rpt

    新文件名出现在Outline窗格中。

要创建报告的内容,请参见使用组件添加报表内容

使用组件添加报表内容

报告组件

报表组件指定要包含在报表中的信息。下图显示了本例中创建的报表的示例页面,突出显示了用于生成报表的组件。

指定报表变量

魔方报告使用MATLAB工作区中定义的变量来指定要显示的正方形的数量和大小,以及是否将这些变量显示为数字表或彩色编码的正方形图像:

  • magicSizeVector变量指定魔方大小的数组

  • largestDisplayedArray变量指定要显示为数字数组的最大魔术方块的大小

您可以要求用户在运行报表之前在MATLAB工作区中创建这些变量。方法来创建变量,这是一个更好的解决方案求MATLAB表达式组件。

使用求MATLAB表达式组件来定义报表变量:

  1. 在左侧的Outline窗格中,选择报表设置的根组件。

  2. 在中间的“图书馆”窗格中MATLAB中,选择求MATLAB表达式

  3. 在右侧的“属性”窗格中,单击旁边的图标向当前报告添加组件要插入求MATLAB表达式组件添加到报告中。

    只有在将组件添加到报表后,您才能在Properties窗格中编辑组件信息。

    在“大纲”窗格中Eval组件显示在magic_squares报告。

    的左上角的图标EvalComponent表示该组件不能有子组件。属性添加的任何组件默认情况下Eval所选组件是该组件的兄弟组件。

    的选项求MATLAB表达式组件显示在“属性”窗格中。

  4. 若要排除本报告中的MATLAB代码细节及其输出,请清除在报告中插入MATLAB表达式而且在报告中显示命令窗口输出复选框。

  5. 要在基本工作区中求值的表达式文本框,将现有文本替换为以下MATLAB代码。

    提示

    将此文本从HTML文档复制并粘贴到报表资源管理器中。

    这段MATLAB代码设置了两个变量,用来定义报表的运行方式。%magicSizeVector是要插入到%报表中的MxM %Magic Square大小的列表。注意,magic %squares不能是2x2。magicSizeVector=[4 8 16 32];%largestDisplayedArray设置数组大小的%限制,该数组大小将通过%Insert Variable组件插入到报告中。largestDisplayedArray = 15;
  6. 如果有错误,则计算此表达式文本框中,将现有文本替换为以下文本。

    disp([' eval: ', evalException.message])

    这将导致在MATLAB代码失败时显示错误。

    提示

    若要立即执行这些命令,请在报表资源管理器的右上角单击Eval现在按钮。这将确认您的命令是正确的,以减少报告生成问题的机会。

  7. 保存报告..

创建一个标题页

请注意

中总结的逐步示例中描述的前面的任务为基础,本节构建在此基础上维护交互式MATLAB报表

如果您还没有完成本例的前面部分,请打开已完成的报告设置文件:魔方报告

要为报表创建标题页,请使用标题页组件。

  1. 在左侧的Outline窗格中,选择Eval组件。

  2. 在中间的选项窗格中格式化,添加标题页组件。

    因为Eval组件图标表示该组件不能有子组件标题页组件是Eval组件。同样,标题页组件不能有子组件。

    请注意

    使用标题页组件时,您的报告需要一个组件。您还没有添加组件,因此“属性”窗格将显示一条消息,指示需要某个章节标题页组件正确显示。因为在这个例子后面你会添加组件,您可以忽略该消息。

  3. 在右侧的“属性”窗格中,使用主要选项卡,输入标题页信息。

    1. 标题文本框,输入魔术方块

    2. 副标题文本框,输入列、行、对角线:人人平等

    3. 选项,选择定制的作者从名单上。

    4. 在球场的右边定制的作者字段中,输入Albrecht Durer

      Albrecht Dürer创作了一幅蚀刻画,其中包含一个魔方。你的期末报告包括那幅蚀刻画的图片。

    5. 选择包括版权所有者和年份复选框。

    6. 在下一个文本框中输入的MathWorks

    7. 在第二个文本框中输入1988

  4. 在“属性”窗格中摘要选项卡中,输入:

    介绍魔方及其含义。

  5. 保存报告。

添加章节

请注意

中总结的逐步示例中描述的前面的任务为基础,本节构建在此基础上维护交互式MATLAB报表

如果您还没有完成本例的前面部分,请打开已完成的报告设置文件:魔方报告

方法向报告中添加章节章/节组件。

  1. 在左侧的Outline窗格中,选择标题页组件。

  2. 在中间的“图书馆”窗格中格式化,添加章/节组件。

    Eval标题页,组件都是报表顶层的子组件,彼此是兄弟姐妹。

  3. 对于自定义章节标题,在右侧的“属性”窗格中输入魔方解释

    大纲窗格显示章节标题。

  4. 保存报告。

在第一章中添加介绍性文本

请注意

中总结的逐步示例中描述的前面的任务为基础,本节构建在此基础上维护交互式MATLAB报表

如果您还没有完成本例的前面部分,请打开已完成的报告设置文件:魔方报告

在第一章中添加介绍性文本而且文本组件。

  1. 在左侧的Outline窗格中,选择组件。

  2. 在中间的“图书馆”窗格中格式化,添加组件。

    的子组件显示在Outline窗格中组件。

  3. 默认情况下,组件从它的子组件继承它的文本。添加两个文本组件。

    请注意

    文本组件必须具有组件作为其父组件。

  4. 在“库”窗格中格式化类别,加两个文本大纲的组件。

  5. 在Outline窗格中,选择第一个文本组件。

  6. 报告中要包含的文本文本框,输入% <帮助(‘魔法’)>

    符号和尖括号<>指示给MATLAB报表生成器软件说明这是MATLAB代码来评估的。命令帮助(‘魔法’)显示有关MATLAB的信息魔法函数。

  7. 在Outline窗格中,选择第二个文本组件。

  8. 报告中要包含的文本文本框,输入此文本。

    德国艺术家阿尔布雷希特·丢勒(1471-1528)创作了许多具有宗教和科学象征意义的木刻和版画。他最著名的作品之一《忧郁症I》探讨了反对灵感和表达的抑郁状态。文艺复兴时期的占星家认为,木星魔方(如图右上方所示)可以帮助治疗忧郁。雕刻的日期(1514年)可以在广场的下面一排数字中找到。
  9. 保存报告。

第一章的内容现在已经完成了。

添加图像

请注意

中总结的逐步示例中描述的前面的任务为基础,本节构建在此基础上维护交互式MATLAB报表

如果您还没有完成本例的前面部分,请打开已完成的报告设置文件:魔方报告

创建Albrecht Dürer的图像,并将其包含在报告中。

  1. 在左侧的Outline窗格中,选择组件。

  2. 在中间的“图书馆”窗格中MATLAB,添加求MATLAB表达式组件。

  3. 移动Eval的组件组件,以便图像跟随介绍文本。要移动它,请在工具栏上单击下来箭头。

  4. Eval组件,设置这些属性:

    1. 清除在报告中插入MATLAB表达式而且在报告中显示命令窗口输出复选框。您不希望在报告中包含代码或其输出。

    2. 要在基本工作区中求值的表达式文本框,将现有文本替换为此MATLAB代码。

      这是德国艺术家Albrecht Durer的自画像。在图像的右上角有一个魔术方块。durerData =负载(“durer.mat”、“垫”);图(“单位”,“像素”,…'Position',[200 200 size(durerData.X,2)*.]5大小(durerData.X 1) *。5);图像(durerData.X);colormap (durerData.map);轴('图像');集(gca,…“Xtick”,[],… 'Ytick',[],... 'Units','normal',... 'Position',[0 0 1 1]); clear durerData

      此MATLAB代码在MATLAB图形窗口中显示Dürer蚀刻。

    3. 如果有错误,则计算此表达式文本框,将现有文本替换为以下文本:

      disp([' eval: ', evalException.message])

      如果加载Dürer蚀刻时发生错误,则执行此代码。

  5. 在左侧的Outline窗格中,选择Eval组件。

  6. 在中间的“图书馆”窗格中处理图形,添加图快照组件。

    内联图像组件(例如图像图快照),把它包括在组件。

  7. 在属性窗格中:

    1. 方向列表,选择肖像

    2. 反转硬拷贝列表中,选择不反

      选择此选项指定不更改打印时图像的屏幕颜色。

    接下来的三个步骤设置报告,以便在将图像添加到报告后从MATLAB工作区中删除图像。

  8. 在Outline窗格中,选择图快照组件。

  9. 在“库”窗格中MATLAB,添加求MATLAB表达式组件。

  10. 在属性窗格中:

    1. 清除在报告中插入MATLAB表达式而且在报告中显示命令窗口输出复选框。您不希望在报告中包含代码或其输出。

    2. 要在基本工作区中求值的表达式文本框,将现有文本替换为:

      此命令删除Durer映像删除(gcf);

      删除(gcf)命令删除MATLAB工作区中的当前图像,在本例中为Dürer蚀刻。

    3. 如果有错误,则计算此表达式文本框,将现有文本替换为以下文本:

      disp([' eval: ', evalException.message])

      如果在删除Dürer蚀刻时发生错误,则执行此代码。

  11. 保存报告。

创建魔方和它们的图像

属性指定的每个魔术方块向报告中添加一章magicSizeVector报告变量。你使用For循环组件来执行此重复任务。要创建魔方及其图像,您需要执行以下任务:

创建一个For循环

请注意

中总结的逐步示例中描述的前面的任务为基础,本节构建在此基础上维护交互式MATLAB报表

如果您还没有完成本例的前面部分,请打开已完成的报告设置文件:魔方报告

  1. 在左侧的Outline窗格中,选择组件。

  2. 在中间的“图书馆”窗格中逻辑和流程控制,添加For循环组件。

    For循环组件出现在组件。但是,魔方应该在第一章之后处理,所以做出组件的兄弟组件组件,而不是子组件。

  3. 在Outline窗格中,选择组件。

  4. 单击箭头,使组件的兄弟组件组件。

  5. 在右侧的属性窗格中:

    1. 结束文本框,将现有文本替换为以下文本:

      长度(magicSizeVector)

      这是包含不同大小的魔方矩阵的向量的长度。

    2. 变量名文本框,将现有文本替换为以下文本:

      MAGIC_SQUARE_INDEX

      这个变量充当循环索引。

  6. 保存报告。

为每个正方形添加一个章节

请注意

中总结的逐步示例中描述的前面的任务为基础,本节构建在此基础上维护交互式MATLAB报表

如果您还没有完成本例的前面部分,请打开已完成的报告设置文件:魔方报告

为每个正方形创建一个章节控件的子元素For循环组件。这将导致报表生成器在报表生成期间为for循环的每次迭代创建一个章节。

  1. 在左侧的Outline窗格中,选择组件。

  2. 在中间的“图书馆”窗格中格式化,添加章/节组件添加到报表设置。

    的子元素组件。

  3. 在右侧的Properties窗格中,选择自定义标题列出并输入章节标题:

    魔方# %
                    
  4. 保存报告。

确定矩阵大小

请注意

中总结的逐步示例中描述的前面的任务为基础,本节构建在此基础上维护交互式MATLAB报表

如果您还没有完成本例的前面部分,请打开已完成的报告设置文件:魔方报告

从中提取每个魔方矩阵的大小magicSizeVector使用一个求MATLAB表达式组件。

  1. 在左侧的Outline窗格中,选择底部组件。

  2. 在中间的“图书馆”窗格中MATLAB类别,添加求MATLAB表达式组件添加到报表设置。

  3. 在属性窗格中:

    1. 清除在报告中插入MATLAB表达式而且在报告中显示命令窗口输出复选框。

    2. 要在基本工作区中求值的表达式文本框,将现有文本替换为:

      magic_Square_Size = magicSizeVector (MAGIC_SQUARE_INDEX);

      这个命令从第一个中初始化的大小向量中提取魔方的下一个大小Eval报告的组成部分。的变量magic_Square_Size表示当前正在处理的魔方的大小。

    3. 如果有错误,则计算此表达式文本框,将现有文本替换为以下文本:

      disp([' eval: ', evalException.message])

      如果试图从中提取值时发生错误,则执行此代码magicSizeVector

  4. 保存报告。

将魔方大小插入报表中

请注意

中总结的逐步示例中描述的前面的任务为基础,本节构建在此基础上维护交互式MATLAB报表

如果您还没有完成本例的前面部分,请打开已完成的报告设置文件:魔方报告

方法将魔方的大小插入报表而且插入变量组件。

  1. 在左侧的Outline窗格中,选择底部Eval组件。

  2. 在中间的“图书馆”窗格中格式化,添加组件添加到报表设置。

    不要更改属性。包含魔方大小的变量放在这一段中。

  3. 在Outline窗格中,选择组件(在组件)。

  4. 在“库”窗格中MATLAB,添加插入变量组件导入报表设置。

  5. 在右侧的属性窗格中:

    1. 变量名文本框,输入magic_Square_Size

    2. 显示为列表中,选择内联文本

  6. 保存报告。

创造魔方

请注意

中总结的逐步示例中描述的前面的任务为基础,本节构建在此基础上维护交互式MATLAB报表

如果您还没有完成本例的前面部分,请打开已完成的报告设置文件:魔方报告

若要创建魔方并显示相关的矩阵或图像,请使用求MATLAB表达式组件。

  1. 在左侧的Outline窗格中,选择底部组件。

  2. 在中间的“图书馆”窗格中MATLAB,添加求MATLAB表达式组件添加到报表设置。

  3. 让这求MATLAB表达式组件的兄弟组件组件。在Outline窗格中,选择Eval组件。单击工具栏上的左箭头。

  4. 在右侧的属性窗格中:

    1. 清除在报告中插入MATLAB表达式而且在报告中显示命令窗口输出复选框。

    2. 要在基本工作区中求值的表达式文本框,将现有文本替换为此MATLAB代码。

      这个MATLAB脚本产生了一个魔法magic_Square_Size大小的%平方%并创建该正方形的图像。mySquare =魔法(magic_Square_Size);clf显示亮度图像(mySquare);标题(sprintf (“魔方N=%i”甘氨胆酸,magic_Square_Size))集(,“Ydir”“正常”);轴平等的;轴

      这段代码创建了一个神奇的方阵mySquare的大小magic_Square_Size,并在MATLAB图形窗口中打开该矩阵的图像。

    3. 如果有错误,则计算此表达式文本框,将现有文本替换为以下文本:

      disp ([' eval期间出错:', evalException.message])

      如果在创建和显示魔方时发生错误,则执行此代码。

  5. 保存报告。

增加显示逻辑

请注意

中总结的逐步示例中描述的前面的任务为基础,本节构建在此基础上维护交互式MATLAB报表

如果您还没有完成本例的前面部分,请打开已完成的报告设置文件:魔方报告

使用逻辑如果逻辑然后,其他逻辑组件来确定是将魔术方块显示为数字数组还是图像。

  1. 在左侧的Outline窗格中,选择Eval组件。

  2. 在图书馆面板的中间,下面逻辑和流程控制,双击逻辑如果

  3. 在右侧的“属性”窗格中测试表达式文本框,将现有文本替换为以下文本:

    magic_Square_Size < = largestDisplayedArray

    此命令测试当前矩阵大小(magic_Square_Size)小于或等于第一个指定的值Eval报告的组成部分(largestDisplayedArray = 15).

    处理这个结果逻辑如果组件,创建两个子组件-逻辑然后而且其他逻辑.如果magic_Square_Size小于或等于15时,矩阵变量将出现在报告中。如果magic_Square_Size大于15时,矩阵图像出现在报告中。

  4. 在Outline窗格上,选择如果组件。

  5. 在“图书馆”窗格的下面逻辑和流程控制,双击其他逻辑

  6. 在Outline窗格上,选择如果组件。

  7. 在“图书馆”窗格的下面逻辑和流程控制,双击逻辑然后

    然后组件出现在其他的组件。

  8. 保存报告。

展示魔方

请注意

中给出的逐步示例为本节的基础维护交互式MATLAB报表

要查看已完成的报告设置文件,请打开魔方报告

  1. 在左侧的Outline窗格中,选择然后组件。

  2. 在中间的“图书馆”窗格中MATLAB,双击插入变量

  3. 在右侧的属性窗格中:

    1. 变量名文本框,输入mySquare,它是包含指定大小的魔方的变量。

    2. 标题列表中,选择没有一个

    3. 数组大小限制文本框,输入0

      变量组件显示魔术方阵,存储在mySquare变量。

  4. 在Outline窗格中,选择其他的组件。

  5. 在“库”窗格中处理图形,双击循环图

    不要改变它的属性。

  6. 在Outline窗格中,选择循环图组件。

  7. 在“库”窗格中处理图形,双击图快照

  8. 在属性窗格中:

    1. 论文方向列表中,选择肖像

    2. 图像大小列表中,选择自定义

    3. 图像大小列表,输入(5 - 4)自定义图像大小。

    4. 反转硬拷贝列表中,选择

      此选项将暗轴颜色更改为浅轴颜色,反之亦然。

    Outline窗格如下所示。

  9. 保存报告。

错误处理MATLAB代码

控件可以将MATLAB代码添加到报表中求MATLAB表达式组件(也称为Eval组件)。

求MATLAB表达式组件对话框包括如果有错误,则计算此表达式复选框。对话框包括您可以使用的默认错误处理代码,或者您可以创建自己的错误处理代码。

如果您不更改默认的错误处理代码,那么当您生成报告时,并且在您添加的MATLAB代码中有一个错误:

  • 如果你清除了如果有错误,则计算此表达式复选框,则生成完整的报告,而不会在MATLAB命令行中显示错误消息。

  • 如果您选择如果有错误,则计算此表达式复选框,则生成完整的报告,并在MATLAB命令行中出现错误消息。

若要在添加的MATLAB代码中出现错误时停止生成报告,请更改以下默认错误处理代码的第二行和第三行,如下所示:

warningMessageLevel = 2;displayWarningMessage = true;failGenerationWithException = false;failGenerationWithoutException = false;

要停止生成报告并显示异常,将默认代码更改为:

displayWarningMessage = false;failGenerationWithException = true;

要停止生成报告而不显示异常,将默认代码更改为:

displayWarningMessage = false;failGenerationWithoutException = true;

如果要替换默认的错误处理代码,请使用evalException.message变量返回异常的信息。

生成报告

请注意

中给出的逐步示例为本节的基础维护交互式MATLAB报表

要查看已完成的报告设置文件,请打开魔方报告

在本例开始时,您指定了HTML (from template)作为报告的输出格式。如果您没有这样做,或者如果您在本教程后面打开了完整的报告设置文件,那么现在就设置它。

  1. 在工具栏上,单击报告按钮以生成报告。

  2. 生成报告时,在“消息列表”窗口中,指定希望“消息列表”窗口显示的详细级别。

    在“报表资源管理器大纲”窗格中,报表设置文件的每个组件在执行时会高亮显示。

处理完成后,MATLAB Web浏览器打开并显示HTML文件。

当你选择的时候HTML (from template)作为输出类型,目录在报告中显示为折叠。通过单击节点上的加号或减号展开或折叠每个节点。新闻Ctrl+点击展开或折叠整个结构(CMD+点击Macintosh平台)。