在Matlab中使用i和j作为变量

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (252)

i并且j是非常流行的变量名称(例如,参见这个问题这个问题)。

例如,在循环中:

for i=1:10,
    % do something...
end

作为矩阵的指标:

mat( i, j ) = 4;

为什么不能在Matlab中用作变量名?

提问于
用户回答回答于

因为ij都是表示虚构单位的函数:

所以一个被调用ij将会覆盖它们的变量,可能会默默地破坏复杂数学的代码。

可能的解决方案包括使用iijj作为循环变量,或者1i每当i需要表示虚数单元时使用。

用户回答回答于

这是很好的做法,以避免ij变量,以防止对他们是变量或虚数单位混淆。

然而,就个人而言,我常常将它作为短循环索引使用ij作为变量。为了避免在我自己的代码中出现问题,我遵循另一个关于i和的好习惯j不要用它们来表示虚数。事实上,Matlab自己的文档指出

为了提高速度和改善鲁棒性,您可以替换复杂ij通过1i

所以,由于存在潜在的冲突,而不是避免使用两个非常常用的变量名,所以我明确表示虚数。这也使我的代码更清晰。任何时候我看到1i,我知道它的表现sqrt(-1)是因为它不可能是一个变量。

扫码关注云+社区

领取腾讯云代金券