主要内容

校验码错误和警告

MATLAB®代码分析器可以自动检查您的代码的编码问题。

自动检查代码编辑器和编辑器,代码分析器生活

您可以查看警告和错误消息关于你的代码,并修改您的文件基于消息。信息自动更新,不断可以看到如果你改变解决问题中提到的消息。一些消息提供额外信息,自动代码修正,或两者兼而有之。

使连续代码检查

在MATLAB代码启用连续代码检查文件在编辑器编辑器和生活:

  1. 选项卡,环境部分中,点击首选项

  2. 选择MATLAB>代码分析器,然后选择使集成警告和错误消息复选框。

  3. 设置突显出选项强调警告和错误,然后单击好吧

使用连续的代码检查

您可以使用连续的MATLAB代码文件中的代码检查在编辑器编辑器和生活:

  1. 在编辑器中打开一个MATLAB代码文件或者编辑器。下面的例子使用了样本文件lengthofline.m附带的MATLAB软件:

    1. 打开示例文件:

      open (fullfile (matlabroot‘帮助’,‘techdoc’,‘matlab_env’,……“例子”、“lengthofline.m '))
    2. 将示例文件保存到一个文件夹,你有写访问。例如,lengthofline.m保存到C: \ my_MATLAB_files

  2. 检查消息指示消息栏的顶部看到代码分析器消息报道的文件:

    • 红色的显示语法错误或其他重大问题被发现。

    • 橙色显示警告或改进的机会,但是没有发现错误,。

    • 绿色显示没有错误、警告或改善的机会被发现。

    在这个例子中,指标是红色的,这意味着至少有一个错误的文件。

  3. 单击消息指示去下一个代码片段包含一个消息。下一个代码片段是相对于当前光标位置,可以在状态栏中。

    lengthofline示例中,第一个消息在第21行。光标移动到第21行的开始。

    有一个消息的代码片段在红色下划线为错误或橙色警告和改进机会。

  4. 视图强调内的信息通过移动鼠标指针的代码片段。

    消息会在工具提示中打开和包含一个细节按钮,提供额外的信息通过扩展信息。不是所有的消息都有附加信息。

  5. 单击细节按钮。

    窗口扩大到显示一个解释和用户操作。

  6. 修改代码,如果必要的。

    消息指示器和强调自动更新,以反映您所作的改变,即使你不保存文件。

  7. 在27日行上空盘旋刺激

    代码是强调因为有一个警告消息,并高亮显示,因为可以自动修复。当您查看消息时,它提供了一个按钮来应用自动修复。

  8. 解决这个问题通过以下之一:

    • 如果你知道什么是修复(从以前的经验),点击修复

    • 如果您不熟悉修复、视图,然后应用如下:

      1. 右键单击突出显示的代码(单键鼠标,出版社Ctrl+单击),然后在上下文菜单中查看第一项。

      2. 单击修复。

        MATLAB自动纠正代码。

        在这个例子中,MATLAB取代刺激(大小(线))元素个数(线)

  9. 去一个不同的消息通过下列之一:

    • 去下一个消息,单击消息指示器或下一个下划线的代码片段。

    • 去一个标记代表一行,点击红色或橙色线指示器栏。

      看到第一个错误lengthofline在消息栏,单击第一个红色标记。光标移动到第一个嫌疑人47个代码片段。的细节修复如果按钮变暗(或不可见的MATLAB在线™),这表明没有更多的信息关于这个消息并没有自动修复。

      多个消息可以代表一个问题或多个问题。解决一个可能解决所有,或处理后,其他信息可能会改变或你需要做的可能会变得更加清晰。

  10. 修改代码解决这个问题在消息——消息指出指标自动更新。

    在47行,消息显示分隔符不平衡。调查这个消息,在编辑器编辑器或生活,把箭头键在每个分隔符,看看MATLAB显示不匹配。说明如何启用分隔符匹配上箭头,看到的设置键盘首选项

    看起来没有不匹配的分隔符。然而,代码分析检测分号在括号中:数据{3}(,),并解释这是结束的声明。消息报道称,在47行各有两条语句分隔符不平衡。

    解决这个问题,47岁的改变数据{3}(,){3}数据(:)。现在,强调不再出现在47。单一改变地址消息的问题在两个线47岁。因为更改删除唯一错误的文件,消息指示器的顶部栏从红色变为橙色,表明只有警告和潜在的改进仍然存在。

修改代码来处理所有的消息后,或禁用指定消息,消息指示器变成绿色。所有消息的示例文件被保存为解决lengthofline2.m。打开纠正示例文件的命令:

open (fullfile (matlabroot‘帮助’,‘techdoc’,……“matlab_env”、“例子”、“lengthofline2.m '))

创建一个代码分析器消息报告

您可以创建一个报告的消息对于单个文件,或所有文件到一个文件夹中使用这些方法之一:

  • 运行报告个人MATLAB代码文件:

    1. 在编辑器窗口,单击并选择显示代码分析器的报告

      MATLAB代码分析器报告出现在Web浏览器。

    2. 根据报告中的信息修改您的文件。

    3. 保存文件。

    4. 重新运行报告,看看您的更改解决问题中提到的消息。

    创建一个报告为单个文件在现场编辑器不支持。金宝app

  • 运行报告所有文件在一个文件夹:

    1. 在当前文件夹浏览器,点击

    2. 选择报告>代码分析报告

    3. 根据报告中的信息修改你的文件。

      有关详细信息,请参见MATLAB代码分析报告

    4. 保存已修改的文件。

    5. 重新运行报告,看看您的更改解决问题中提到的消息。

调整代码分析器消息指标和消息

根据你完成的阶段一个MATLAB文件,您可能希望限制代码凸显。你可以通过使用代码分析器的偏好在步骤1中,校验码错误和警告。例如,当第一个编码,你可能更愿意强调只有错误因为警告会分散注意力。

代码分析不提供完美的信息情况,有时候,你可能不想改变基于消息的代码。如果你不想改变代码,你不想看到这条线的指标和消息,压制他们。为lengthofline例子,48岁的第一个消息终止语句用分号来抑制输出(功能)。添加一个分号的一份声明中抑制输出,是一种常见的做法。代码分析警告您行产生输出,但是没有终止分号。如果你想查看输出线48,不添加分号作为消息显示。

有几种不同的方法来抑制(关闭)警告和错误消息的指标:

你不能抑制错误消息等语法错误。因此,说明抑制消息并不适用于这些类型的消息。

抑制在当前文件的一个实例的信息

你可以抑制特定的实例代码分析器消息在当前文件。例如,使用本文提供的代码校验码错误和警告遵循以下步骤:

  1. 在第一个下划线(48,右键单击一个单键鼠标,出版社Ctrl+点击)。

  2. 从上下文菜单中,选择抑制“终止语句用分号…”>在这条线上

    评论% #好< NOPRT >出现在年底,这指示MATLAB抑制终止语句用分号来抑制输出(功能)行代码分析器消息。下划线和马克在指示器栏消失的消息。

  3. 如果有两个信息你不想显示一行,单击右键分别在每一个下划线并从上下文菜单中选择适当的条目。

    % #好吧语法扩展。例如,在本文提供的代码校验码错误和警告线48,忽略消息添加评论% #好< NBRAK NOPRT >结束的时候。

    即使代码分析器偏好设置来启用这个消息,消息的特定实例以这种方式抑制没有出现,因为% #好吧优先于偏好设置。如果你决定你想要显示的终止语句用分号来抑制输出(功能)代码分析器消息行,删除% #好< NOPRT >从线。

抑制在当前文件的所有实例的信息

你可以抑制特定的所有实例代码分析器消息在当前文件。例如,使用本文提供的代码校验码错误和警告遵循以下步骤:

  1. 在第一个下划线(48,右键单击一个单键鼠标,出版社Ctrl+点击)。

  2. 从上下文菜单中,选择抑制“终止语句用分号…”>在这个文件中

评论% #好< * NOPRT >出现在最后的线,指示MATLAB压制的所有实例终止语句用分号来抑制输出(功能)在当前文件代码分析器的信息。强调,标志着在消息指示器栏对应于这个消息消失。

如果一条线有两个消息,你不想显示在当前文件,用鼠标右键单击分别在每一个下划线,然后从上下文菜单中选择适当的条目。的% #好吧语法扩展。例如,在本文提供的代码校验码错误和警告线48,忽略消息添加评论% #好< * NBRAK, * NOPRT >

即使代码分析器偏好设置来启用这个消息,消息没有出现,因为% #好吧优先于偏好设置。如果你决定你想要显示的所有实例终止语句用分号来抑制输出(功能)代码分析器消息在当前文件,删除% #好< * NOPRT >从线。

抑制在所有文件的所有实例的信息

你可以禁用所有实例代码分析器消息的所有文件。例如,使用本文提供的代码校验码错误和警告遵循以下步骤:

  1. 在第一个下划线(48,右键单击一个单键鼠标,出版社Ctrl+点击)。

  2. 选择抑制“终止语句用分号…”>在所有文件

这个修改代码分析器的偏好设置。

如果你知道这消息或消息你想压制,你可以禁用直接使用代码分析器偏好,如下:

  1. 选项卡,环境部分中,点击首选项

  2. 选择MATLAB>代码分析器

  3. 搜索的信息找到你想要压制的。

  4. 明确相关的复选框每个消息你想压制在所有文件。

  5. 点击好吧

保存和重用代码分析器消息设置

您可以指定你想要启用或禁用某些代码分析器消息,然后将这些设置保存到一个文件中。当你想要使用一个设置文件与一个特定的文件,你从代码分析器偏好窗格中选择它。设置文件仍然有效,直到你选择另一个设置文件。通常,您更改设置文件当你有一个子集的文件你想使用一个特定的设置文件。

遵循以下步骤:

  1. 选项卡,环境部分中,点击首选项

    Preferences对话框打开。

  2. 选择MATLAB>代码分析器

  3. 启用或禁用特定的消息,或类别的消息。

  4. 点击操作按钮中,选择另存为,然后保存设置三种文件。

  5. 点击好吧

您可以重用这些设置为任何MATLAB文件,或提供给另一个用户的设置文件。

使用保存的设置:

  1. 选项卡,环境部分中,点击首选项

    Preferences对话框打开。

  2. 选择MATLAB>代码分析器

  3. 使用活动设置下拉列表选择浏览…

    打开的对话框。

  4. 选择任何你的设置文件。

    你选择的设置实际上所有MATLAB文件直到你选择另一组代码分析器设置。

理解代码包含隐含的信息

如果你收到包含抑制消息的代码,您可能想要回顾这些信息而不需要unsuppress第一个吃螃蟹的人。消息可能会处于抑制状态有下列原因:

  • 一个或多个% #好<问题>指示在一行代码,抒发指定的消息<问题>

  • 一个或多个% #好< *问题>指令在一个抒发消息指定的文件<问题>

  • 清除代码分析器偏好窗格。

  • 它在默认情况下是禁用的。

确定一些信息被抑制的原因:

  1. 搜索文件% #好吧指令和创建一个列表的所有消息id相关的指令。

  2. 选项卡,环境部分中,点击首选项

    Preferences对话框打开。

  3. 选择MATLAB>代码分析器

  4. 在搜索领域,类型是否:紧随其后的是一个消息id,如果任何,你发现在步骤1中。

    现在消息列表只包含ID的消息相对应。如果消息是一个超链接,单击它来查看消息的解释和建议的行动。这可以提供洞察为什么消息压制或禁用。下图显示了如何当你进入Preferences对话框是否:CPROP在搜索领域。

  5. 单击按钮来清除搜索字段,然后重复步骤4你发现在步骤1中为每个消息ID。

  6. 显示默认禁用,禁用的消息在首选项面板中点击右边的向下箭头的搜索字段。然后,单击显示禁用消息

  7. 检查消息与每个消息ID关联理解为什么它是抑制代码或禁用的偏好。

理解代码分析的局限性

代码分析是一个有价值的工具,但也有一些限制:

  • 有时候,不能生成代码分析器消息你期望他们的地方。

    通过设计,代码分析试图最小化错误消息返回的数量,即使这种行为使一些问题去未被发现。

  • 有时,它产生的消息并不适用于您的情况。

    当提供消息,单击细节附加信息的按钮,可以帮你把这个决心。错误消息几乎都是问题。然而,许多警告建议看一些代码中是不寻常的,因此怀疑,但在你的情况可能是正确的。

    抑制一个警告消息如果你确定消息并不适用于您的情况。抑制消息如果你的原因是微妙的或模糊的,包括一个评论的基本原理。这样,那些阅读代码的人意识到这种情况。

    有关详细信息,请参见调整代码分析器消息指标和消息

这些部分描述关于以下代码分析的局限性:

区分函数名和变量名

代码分析不能总是区分函数名和变量名。下面的代码,如果启用了代码分析器的消息,代码分析返回的消息,代码分析仪不能确定xyz是一个变量或函数,并假设它是一个函数。无法做出决定,因为代码分析xyz没有明显的值分配给它。然而,程序可能会把值在工作区中,代码分析不能检测。

函数y = foo (x)。y = xyz (x);结束

例如,在下面的代码中,xyz可以是一个函数,或可能是一个变量从MAT-file加载。代码分析无法测定。

函数y = foo (x)负载abc。垫y = xyz (x);结束
变量也可能是未被发现的,当你使用代码分析eval,evalc,evalin,或assignin功能。

如果代码分析错误的变量函数,做以下之一:

  • 初始化变量,这样代码分析并不把它当作一个函数。

  • 负载函数显式地指定变量名负载命令行。例如:

    函数y = foo (x)负载abc。垫xyz y = xyz (x);结束

区分结构和处理对象

代码分析不能总是区分结构和处理对象。在以下代码中,如果x是一个结构,你可能期望一个代码分析器消息,表明结构的代码没有使用更新后的值。如果x是一个处理对象,然而,这段代码可以是正确的。

函数foo (x) x。= 3;结束

代码分析不能确定x是一个结构或一个处理对象。减少的数量不正确的信息,代码分析返回前面的代码没有消息,即使它可能包含一个微妙的和严重的错误。

区分内置函数和重载函数

如果在一个类或一些内置函数重载道路,代码分析器消息可能适用于内置的函数,而不是调用重载函数。在这种情况下,抑制消息上看来或抑制整个文件。

抑制信息的信息,请参阅调整代码分析器消息指标和消息

确定变量的大小或形状

代码分析确定变量的类型的能力有限和矩阵的形状。代码分析可能产生适当的消息对于最常见的情况,如向量。然而,这些消息可能不适合不太常见的情况下,比如矩阵。

分析类定义与父类

代码分析器功能检查有限类定义与父类。例如,代码分析仪不能总是确定类是一个处理类,但它有时可以验证自定义属性中使用一个类是否继承自一个父类的属性。在分析类定义时,代码分析器试图使用信息从超类,但往往不能得到足够的信息来做出一定的决心。

分析类方法

大多数类方法必须包含至少一个参数是一个对象的类的方法。但它并不总是第一个参数。时,代码分析可以确定一个参数是一个对象类的定义,它可以做各种检查。例如,它可以检查属性和方法名称存在,拼写正确。然而,当代码分析不能确定,一个对象是一个类的参数定义,那么它不能提供这些检查。

启用MATLAB编译器部署消息

你可以切换显示或隐藏编译器部署消息当你工作文件通过改变代码分析器偏爱这个消息类别。你的选择可能取决于你是否正在被部署的文件。当你改变偏好,它还在编辑器中更改设置。反过来也是如此——当你改变设置从编辑器,它有效地改变这种偏好。然而,如果对话框打开时你在编辑器中修改设置,您将不会看到的变化反映在Preferences对话框。无论你改变设置从编辑器或Preferences对话框,它适用于代码的编辑器和分析器的报告。

要启用MATLAB编译器™部署的消息:

  1. 选项卡,环境部分中,点击首选项

    Preferences对话框打开。

  2. 选择MATLAB>代码分析器

  3. 单击搜索字段旁边的向下箭头,然后选择显示消息类别>MATLAB编译器(部署)消息

  4. 单击启用类别按钮。

  5. 明确的个人信息,你不想显示为您的代码(如果有的话)。

  6. 决定你是否想保存这些设置,所以你可以重用他们下次你文件部署工作。

的设置三种文件,该文件可以创建中描述保存和重用代码分析器消息设置,包括该设置的状态。