我和j变量名与虚数单位:什么建议给在MATLAB的答案吗?

29日视图(30天)
一个评论 我自己的评论(不建议OP使用 j 循环变量名),纪尧姆下面写道:
斯蒂芬,你说在每一篇文章中,使用我或j作为迭代器。我不同意,因为:
)它代表很少的机会打破任何东西。Matlab使用1 i和j表示虚数单位。i和j函数,返回这些值。
b)我认为mathworks错了创建这些功能放在第一位。i和j作为迭代变量在数量巨大的计算机书籍。Matlab不该劫持这一共同的变量名。(Matlab迫切的需要名称空间)。
然而,我想说,在复杂的代码,您应该使用变量名更好的解释他们的目的。
a)和b)都是优点,但实际上我的主要动机让这些评论OP是建立更多的想法“OP可能不知道这个信息,这里是小和容易了解MATLAB”。我觉得它很适合新信息引入一个OP的答案,或一个新的做事方式,他们可能没有意识到,甚至偶尔一个OP了东西的“哦,谢谢你,我不知道”。
但是我认识到滥用 j 不太可能打破一个任务吗 长度 的意思是 总和 我最喜欢(或 假= true ),尽管 它确实发生了 ,因为这些 答案 指示。无论是好是坏,MATLAB 允许用户指定这些名字没有警告(是的名称空间,或者至少一些语法,迫使这种阴影)。
显然曾经有一个页面MathWorks网站题为“避免使用i和j变量”,但它似乎不存在任何更多。文档 年长的MATLAB 版本明确建议不使用 j 作为变量名,原因与jit相关的速度。
  1. 这个问题还有关吗?
  2. 它是有用的给一个OP的新信息,他们可能没有意识到,即使它并不直接影响结果的问题吗?
  3. 应该j被区别对待跟踪其他内置函数或变量,即使他们发布代码不休息?
  4. 它是适当的做出评论他们的用法吗?
  5. 在什么情况下,OP的吗?

接受的答案

肖恩·德Wolski
肖恩·德Wolski 2015年2月9日
  • 斯蒂芬,我认为这是一个最佳实践,所以你不伤害任何东西或任何人。是否值得的按键和时间给你,那是你自己的成本函数:)
  • 代码分析器仍建议避免定义sqrt (1) i和j。尽管许多(如果不是大多数用户忽略代码分析仪:
_
  • 检查是否存在一个函数的唯一可靠的方法是使用
哪一个——functionname
在哪里 functionname 是你想检查字符串函数名。我之前做这个很我写的一切。一些检查可以避免通过使用名称空间(包)。
当我在技术支持的工作万博1manbetx 个人最大的 大多数电话的原因。为什么我得到某个“太多的输入错误”等几乎所有错误消息来自代码可以解决 dbstop如果错误 这- 也告诉你关于许可付款失败。

更多的答案(3)

Guillaume
Guillaume 2015年2月5日
编辑:Guillaume 2015年2月5日
在我看来,除非一个变量名的阴影是一个非常常用的matlab函数(和,大小、最大,等等),我不认为这值得指出。问题在于,由于缺乏名称空间,你别站一个战斗的机会知道您使用一个名字不影子在一个matlab工具箱的一个函数。
在代码中,显然没有处理复数,我当然不认为这是值得担心的 。特别是,正如我所说的,无数的例子在书籍和网络使用它作为计数器变量。看看维基百科页面上 for循环 , 无处不在。
甚至,处理复数的代码,只有用户的代码,可以打破(我希望mathwork自己的代码是有弹性)因为他们明确地使用它作为一个虚数单位的符号。因此,他们应该已经意识到 意味着 √6 (1)
另一方面,我从未使用过 , j ,或任何一个字母变量在任何持久的代码。它可能更有利于教人们使用变量名,实际上解释他们的目的, fileindex rownumber 等等。这正是我想做的答案(大多数时间)。
2的评论
Stephen23
Stephen23 2015年2月6日
编辑:Stephen23 2015年2月9日
所以应该允许新用户,但是“我从未使用过,j,或任何持久的单字母变量代码”?
我想点MATLAB中央答案之一就是把一些经验和知识给新用户,还是我们期望他们发现自己每次的轮子吗?当然相关的经验 在这里 表明使用 j 变量名真的有点缺陷,似乎最经验丰富的用户往往会避开他们,为什么要隐藏这个新用户?也许他们也在努力写“持久的代码”,我们只看到一个小提取。

登录置评。


大卫年轻
大卫年轻 2015年2月5日
我几乎纪尧姆。
我想有一个更大的问题。我觉得初学者出错的事情之一是太少利用功能。将代码分解成小函数,当然,各种各样的优点,和本地化变量就是其中之一。使用i和j作为一个变量在函数不能掀起全球范围的混乱,如果函数是小容易得多看看如果有问题是错误的。

明星黾
明星黾 2015年2月5日
我的 建议 OP的,当我看到他们在代码中是不使用 “我” “j” 仅仅因为它的上下文中可以混乱复杂的变量在相同的代码。(For循环计数器,如果我不需要他们更具描述性的,我只是使用 “k1” 外层循环, “k2” 内循环,等等,如果我不能避免循环。)
跟踪一个函数的名字,一个快速的方法我使用检查(在 MATLAB 编辑器)是右键单击一个名字,我担心可能的影子一个函数。这引出了一个“帮助”窗口,显示了文档的函数名称,或没有帮助发现[名字]如果没有这个名字的函数-内置或用户编写的存在(在我安装)。右键单击 “我” “j” 提出“帮助”文档“虚数单位”。
Guillaume大卫年轻的他们都正确附加分。
7评论
Guillaume
Guillaume 2015年2月9日
@Sean,包是在matlab中实现的方式,他们实际上不帮助。而不是函数名冲突,你有一个包名称的冲突。当然,这是不太可能,但这不是用户可以解决与路径操作(除了)。包/命名空间名称需要用户的控制下,而不是作者。

登录置评。

类别

找到更多的在调试和分析帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!