编者按:这个文件是文件交换<一个href = "http://blogs.mathworks.com/pick/?p=78">本周精选< / >

编写MATLAB代码的建议通常涉及效率问题,比如建议“不要使用循环”。本文档与本文档不同。它关注的是正确性、清晰性和一般性。这些指导方针的目标是帮助生成更可能是正确的、可理解的、可共享的和可维护的代码。

本文档列出了与软件开发社区中的最佳实践相一致的MATLAB编码建议。这些指导原则通常与C、c++和Java相同,只是对MATLAB特性和历史进行了修改。这些建议是基于从许多来源收集的其他语言指南和个人经验。

这个文件也可以在<一个href = "http://www.datatool.com/prod02.htm"target="_blank" rel="nofollow noopener noreferrer">http://www.datatool.com/prod02.htm< / >

引用作为

理查德·约翰逊(2021)。MATLAB编程风格指南(//www.tatmou.com/matlabcentral/fileexchange/2529-matlab-programming-style-guidelines), MATLAB中央文件交换。检索

意见及评分(90

我现在有一本关于这个主题的书。
<一个
href = "<一个href = "http://www.amazon.com/gp/product/0521732581?ie=UTF8&标签= datatoolcom-20& linkCode = as2&营地= 1789,创意= 390957,creativeASIN = 0521732581 " >"target="_blank" rel="nofollow noopener noreferrer">http://www.amazon.com/gp/product/0521732581?ie=UTF8&标签= datatoolcom-20& linkCode = as2&营地= 1789,创意= 390957,creativeASIN = 0521732581 " >< / >
MATLAB风格元素
src = "<一个href = "http://www.assoc-amazon.com/e/ir?t=datatoolcom-20&l=as2&o=1&a=0521732581"target="_blank" rel="nofollow noopener noreferrer">http://www.assoc-amazon.com/e/ir?t=datatoolcom-20&l=as2&o=1&a=0521732581< / >"
alt = " "
Style ="border: medium none ! "重要;保证金:0 px !重要的;”
border = " 0 "高度= " 1 "宽= " 1 " >
罗兰·舒尔在她的博客上评论了这篇文章。
<一个
href = "<一个href = "http://blogs.mathworks.com/loren/2011/02/10/book-review-the-elements-of-matlab-style/”>罗兰"target="_blank" rel="nofollow noopener noreferrer">http://blogs.mathworks.com/loren/2011/02/10/book-review-the-elements-of-matlab-style/”>罗兰< / >
审查
< / >

帕特里克切除

简短、简单、直接,而且非常有用。

杰夫•卡拉斯

发人深思的好食物。我喜欢你的幽默感,特别是" 1971年11月24日,d·b·库珀,退出条件修改"

Asaf山寨

我读了几个指南文档,这一个比其他的要好得多。
注释:函数名中大写字母的使用很广泛,而且更明确其含义。

摘要- - - - - -

该文件有几处错误:
在其他语言中使用下划线是不常见的,这是一个非常片面的断言。它在C语言中很常见,而C语言是一种相当常见的语言。本文档展示了如何通过不使用下划线来编写不可读的变量名。
2- I和j的使用提到了划痕变量。'i'和'j'是matlab常量(-1的平方根),重新定义'i'是最难调试的错误之一(除非你很清楚这种可能性)。好的Matlab程序员应该避免使用'i'(或'j')。
3-在函数名中使用大写字母是完全有效的,与文档所建议的相反。有些情况下X和X有不同的含义。想想比色法,x,y,z是色度坐标,x,y,z是三刺激体。Matlab提供了使用大写和小写的自由,它应该被合理地使用(例如,一个缩写词,一个名字,等等)。

Vishnuvenkatesh Dhage

很好的文件

恋人拉贾T

好的,如果你能给我更多的指导材料,比如完整的电子拷贝,我将非常感激!

穆罕默德的伊斯兰教

现代社会需要更多的改进。

克里希纳皮拉伊

好医生。

雅埃利斯

很好。

穆罕默德Mostafa

我是一个失败者

作者说,对于整数,常见的scratch变量是i j k m n对于双精度的x y z但是,我们应该避免使用i和j作为变量名,因为它们在默认情况下是象形数字的单位。更准确地说,在Matlab中,i^2 == j^2 == -1。使用i和j作为变量名可能会导致难以检测的错误。

Yun-man荣格

非常感谢。这么多有用的参考
新手。

Izru加纳

对所有开始编程的人都有用。

艰难施密茨时期

不,不,不

戴尔·拉赫曼

弗雷德里克Bosche

真的有帮助。在开始编写任何代码之前,每个人都应该阅读类似的内容!(现在轮到我回顾我所做过的一切)

Rene只是尼尔森

Fu-Sung王

读了这篇文章后,我对以前忽略或误解的一些好东西印象深刻。这个pdf文件很容易理解,对于有MATLAB经验的程序员尤其有用。这些指南帮助我构建了一个更加标准化、易于维护的程序。无论你使用哪种语言,总有一些概念是可以参考的。

约翰太阳能

理查德Kirkeeide

清晰、简洁、合理。应该对我(和其他人)有很大的帮助。谢谢

詹姆斯·布莱诺

Marcio安德烈安德烈

Gostei muito me ajuda guando trabalho com matrizes ele é otimo se duvidas…
Marcio Andre /// florianÓpolis sc
巴西

- -

muthu库马尔

我非常感激

H·帕特尔

文件损坏了,我打不开。

足总静电单位

你的文档还不够结构化。试着使用标准乳胶。更多的例子可能会有帮助,因此不言自明。谢谢,顺便说一句。

skr sleem

Gavril Grebenisan

文件损坏了,我打不开

塔soteropoulos

阿基arso

好吧

威廉·齐默尔曼

简洁而全面的

马克牛顿

有用的,简短的文档,提醒他们应该做的所有事情,但可能没有。

nigus Habtu

我非常感谢matlab&如果给我这个文件,我很高兴。

shivanand b

nhgg jhgu

赛义德Attarzadeh

这是伟大的

迈克尔Villalba

这是一个优秀的集合,非常适合初学者或中级Matlab程序员。

法赫德艾尔·马哈茂德

非常感谢的指导方针!
我希望我能跟上他们!

Bharani•克里

很好

w j

sudharsan kannan

约翰太阳能

很好。但有点太善良了。命令而不是建议!另外,i和j也不应该使用。代码可以扩展为使用复数。这也是一种坏习惯,可能会让你在未来失足。你有时允许它并不是在帮助别人。

Anatoly Shadrin

哈米德reza穆罕默

丹尼斯·詹姆斯

在结构化编程中,标准总是受欢迎的。这是一种标准化的尝试。

老程序员

没有消息

kikaw wahyudi

白木vasfpour

汤姆·阿伦

詹姆斯•克莱因

简洁,很好的例子

亚当·雷米

亚历山大Toniatti

越南东阮

k . Olp博士

一般来说,这其中的大部分应该是任何专业程序员都知道并坚持的,但是有时把它“写下来”作为参考是有用的。作为初学者指南很有用。

约翰Bucsek

查看文件没有问题。一个很好的编程技巧的集合。

维卡斯•贾殷

谢谢这样的设施。

克里斯蒂安·古铁雷斯

这个材料很有教育意义。然而,需要了解Matlab编程。

安吉洛Stranieri

不能下载。acrobat5.0说文件中有一个错误。

另一个用户

固执己见,但深思熟虑的问题,具体到Matlab:-)。我喜欢它!我想知道在Simulink中是否也存在类似的东西?金宝app

一个l

B G

很有帮助。我通常用MATLAB编写,我以前没有读过样式指南。这将帮助我编写更具可读性和可维护性的MATLAB代码。

Matlab的用户

大部分是借用其他语言。看不到太多有用的信息。

王磊

这是编写大型代码的良好约定

Tanveer亚

eduardo perez

据Kovacevic

nandha库马尔

但以理他

安德森一分钱

我认为本文包含了许多与许多编程语言相关的好建议,并包含了一些很好的MATLAB特定提示。

详细的评论:
更长的、更具描述性的变量、函数和文件名都是不错的选择,除非需要数学训练。我不会在线性方程组A*x=b中用任何其他名字来表示A x和b

对于按字母顺序排列的迭代器规则,我的例外是在使用它们访问数组中的条目时(尽管我们在一开始就试图阻止这种行为,但这并不总是可行的)。在这种情况下,我通常使用I表示行,j表示列,k表示页(如果它是一个3D数组),与循环顺序无关。对于更大的维度,我会用i1 i2 i3…

在条件部分,我将用“Complicated”代替“Complex”,以避免与MATLAB的复数混淆。

马修Simoneau

伟大的工作。这份文件写得很好,很准确。MATLAB社区急需的补充。

MATLAB版本兼容性
创建R13
与任何版本兼容
平台的兼容性
窗户 macOS Linux