在编辑器中检查变量范围
范围问题可能是一些编码问题的根源。例如,如果您不知道嵌套函数共享一个特定的变量,那么运行代码的结果可能与您预期的不一样。类似地,局部变量、全局变量和持久变量的使用错误也会导致意想不到的结果。
代码分析器并不总是指出作用域问题,因为跨函数共享变量不是错误——这可能是您的意图。使用MATLAB®函数和变量高亮显示特性,用于识别代码何时何地使用函数和变量。如果你有网络连接,你可以观看变量和函数突出显示视频有关主要功能的概述。
有关嵌套函数和各种类型的MATLAB变量的概念信息,请参见在父函数和嵌套函数之间共享变量而且在工作区之间共享数据.
使用自动函数和变量高亮显示
默认情况下,编辑器用不同深浅的蓝色表示函数、局部变量和具有共享作用域的变量。具有共享作用域的变量包括:全局变量,持续的变量,以及嵌套函数中的变量。(有关更多信息,请参见嵌套函数.)
若要启用或禁用高亮显示或更改颜色,请单击首选项并选择MATLAB>颜色>编程工具.在MATLAB在线™,高亮显示是默认启用的,而更改高亮显示的首选项是不可用的。
默认情况下,编辑器:
当您将光标置于函数或变量名中时,将以天蓝色高亮显示给定函数或局部变量的所有实例。例如:
以蓝绿色显示具有共享作用域的变量,而不管光标位于何处。例如:
使用自动函数和变量高亮显示的例子
考虑一个函数的代码rowsum
:
将每一行的值相加,并将它们存储在一个新数组x = ones(2,10)中;[n, m] = size(x);rowTotals = 0 (1,n);for i = 1:n rowTotals(i) = addToSum;addToSum = 0;Thisrow = x(i,:);对于I = 1:m colsum = colsum + thisrow(I);结束结束
当你运行这段代码时,不是返回每行中值的和并显示:
Ans = 10
MATLAB显示:
Ans = 0 0 0 0 0 0 0 0 0 10
按照以下步骤检查代码:
在首页页中的环境部分中,点击
首选项并选择MATLAB>颜色>编程工具.确保自动高亮显示而且具有共享作用域的变量被选中。
复制
rowsum
代码进入编辑器。注意变量
蓝绿色,表示
我
不是局部变量。这两个rowTotals
功能和addToSum
函数设置并使用该变量我
.的变量
n
,在第6行以黑色显示,表示它不跨越多个函数。将鼠标指针悬停在变量的实例上
我
.出现一个工具提示:变量'i'的作用域跨越多个函数。
单击工具提示链接,了解范围跨越多个函数的变量的信息。
单击
我
.每一次提到
我
高亮显示为天蓝色,标记出现在编辑器右侧的指示栏中。将鼠标悬停在其中一个指示栏标记上。
将出现一个工具提示,并显示函数或变量的名称以及由标记表示的代码行。
单击标记以导航到该标记的工具提示中指示的行。
当您的文件包含的代码超过您在编辑器中一次可以查看的数量时,这尤其有用。
的实例修复代码我
第15行到y
.
单击函数引用时,可以看到类似的突出显示效果。例如,单击addToSum
.