Stuart的MATLAB视频

观察和学习

十大让我哭的MATLAB代码实践

我在MathWorks与应用支持工程师聊天,讨论什么样的编码实践会给MA金宝appTLAB用户带来可以避免的痛苦。

废话不多说:以下是避免做这些事情的十大方法:

10)。不用左边的零

有些事情必须通过艰难的方式才能学会。这是我读本科时一个睡眼惺忪的晚上学到的。直到深夜,我都在做一项“需要十分钟,如果你打慢了需要十五分钟”的MATLAB家庭作业。(是的,P博士,13年过去了,我还记得那句话!-微笑)

这真的很容易弄错.5对于一个5.这就是为什么我总是用左边的00.5

9)。绘制大量的数据

我的电脑显示器总共有230万像素。如果我试图绘制包含大量数据的数据集,它们通常会看起来像一个blob,并在此过程中降低机器的速度。

通常有更好的可视化方法。这是一个例子改变可视化,使其更清晰,减少对内存的负担。

8)。带有花哨配色方案的gui

为了强调GUI上的某些按钮,人们会改变它们的颜色。很快,他们就有了几个不同颜色的按钮,一个非标准的背景色,超大的按钮等等……

坚持默认的颜色是一个很好的举动。大多数专业制作的软件坚持默认设置,最终看起来更好。

7)。使用,或任何其他MATLAB函数作为变量名或函数。

当你这样做的时候,MATLAB会调用路径上更高的一个。当您像这样重新定义函数时,可能会出现一些奇怪的行为。不幸的是,MATLAB在大多数情况下并没有捕捉到您这样做。

我尽量避免使用常见的变量和函数名,比如,的意思是过滤器如有疑问,请使用哪一个命令查找给定名称的函数是否存在。

6)。在代码中没有很好地使用空白。

即使您可以在一行中使用分号分隔多个命令,但这些行通常很难注意到。在代码段之间不放空行也会使代码更难阅读。

空白是免费的,用它来让你的代码看起来更好。

5)。错误的变量名称

变量名通常是唯一被添加到人们代码中的注释。有意义的变量名是一个很好的机会,可以使你的代码的含义更清楚,在某种程度上,可以自我记录。

避免使用这样的变量名临时aaar247899921.这些只是不能向必须阅读您的代码的人传递尽可能多的信息flagPassedInspectioncentroidXfidCurrentFile

4)。将数据硬编码到MATLAB代码文件中

有些人喜欢把一些变量直接放到MATLAB代码中。这是有道理的变量(我将让您定义小的含义)。例如,在代码中放入3×3矩阵会让我感觉很好。我会再三考虑10×10,我会开始使用我们的文件读取器进行100 x 100的读取。

我见过的最糟糕的例子是一些MATLAB代码,其中. m文件有4gig长(这不是一个错误)。其中只有一小部分是用ASCII码写出来的数据。这会使你的代码难以阅读、维护和理解。

3)。超长文件

即使没有将数据硬编码到MATLAB代码文件中,也很容易添加“再多几行代码”,直到您在一个脚本中有数千行代码。这会使您的代码难以理解。

试一试使用我应该能够在一个屏幕上看到整个脚本或函数的规则。这并不完全实用,所以我至少将代码分解成适合屏幕的逻辑部分。

2)。全局变量

我从未见过在MATLAB代码中全局变量是正确的。例外:TIC和TOC函数很好地使用了它们。大多数情况下,我看到使用全局变量是因为代码作者不理解变量的作用域。而不是将变量从一个函数传递到另一个函数,它们只是被设置为全局的。

为什么要告诫人们不要使用全局变量?我把这个问题留给维基百科共识

1)。Eval

EVAL和全局变量是一样的。MATLAB用户经常将MATLAB命令串在一起以获得顺序变量名s1s2s3…然后必须使用另一个EVAL语句来处理顺序变量名!通常,用s{1}, s{2}, s{3}…索引的单元格数组会工作得更好。

我还会发现,当人们在编写代码时不知道他们想要什么字段时,他们会使用EVAL来获取结构中的某些字段(例如data.alpha)。现在,”。父母”符号这样就简单多了。

人们在不需要EVAL时使用EVAL的另一个最常见的情况是,当他们试图加载一个文件或其他类似的函数时。他们经常尝试EVAL一个字符串,如“加载文件名。fileNameString = ' filename.mat ';加载(fileNameString)

遵循@stuartmcgarrity在Twitter上获得新帖子的通知。

|
  • 打印
  • 发送电子邮件

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。