Loren在Matlab的艺术上

将想法转化为matlab

谁或什么赢,呃,优先?

我们担心,多年来为我们建立更多的功能到MATLAB,特别是当我们新的文件类型和数据类型,关于如何确保用户在访问他们打算使用的产品。

内容

我们甚至可以使用命令来帮助您确定正在发生的事情,例如

要么为什么还是其实只是开玩笑的最后一个乐于帮助在这里。但是,你可能会喜欢尝试这样的:

为什么(174)
Loren知道这是一个好主意。

变量和函数优先

当它看到名称时,Matlab如何决定是否使用变量或多个可能的函数中的哪些具有相同名称。Matlab有优先的规则,并且始终存在。在释放R2019B中,优先级规则被更新了。事实上,许多你不受影响,因为这些变化有点深奥,并且在很多代码中都没有遇到。但是,当过去发生某些条件时,人们偶尔会出现意外(从他们的心理模型)行为。我们尝试解决这些更新的规则。您可以在此处指出的发布说明中或在文档的这些部分中找到详细信息。

你会在最后一个环节,我们提供的是什么,你可能之前写的代码示例,你看到了什么行为,如何与新的规则重写它注意到,什么行为,你现在应该看到。您还会注意到,这已经改变了的条件围绕变量,嵌套函数,局部函数和外部函数。其中的一些变化也极力推广书写清晰的代码,如不命名一个局部变量,并具有相同名称的局部功能。

类和运算符优先级

下面是其中一些额外的优先规则,但我注意到,这些都没有改变其他一些实例:

一个例子

以下是一个示例的3个文件。我们从19A或更早版本开始使用代码。

这个函数运行没有R2019a错误,有2个不同的含义当地的

功能myfunc19a本地(1);%的本地是一个函数本地= 2;DISP(本地);结尾功能本地(x)disp(x)结尾

接下来的这个代码在R2019b的错误。

功能myfuncer19b.%本地是一个未定义的变量当地(1);%错误本地= 2;DISP(本地);结尾功能本地(x)disp(x)结尾

此代码正常工作。并且也会更早地运行。

功能myfuncgood19b localfcn(1);本地= 2;DISP(本地);结尾功能localfcn(x)disp(x)结尾

使用匿名功能更具显着的变化

这是函数行为的另一个变化,特别是匿名函数。由于R2019B,匿名函数可以包括分辨率和未解决的标识符。

谁赢?

希望我们都赢得了解更清晰,更清晰的代码,我们可以从中访问我们正在寻找的元素(变量和函数)。有没有人在R2019B或以后的这种变化中遇到过问题?如果是这样,请告诉我这里




发布与MATLAB®R2020A

|

评论

要发表评论,请点击这里登录您的MathWorks帐户或创建新的。