Nas versões antigas do MATLAB, costumava haver um bom motivo para evitar o uso de i
e j
como nomes de variáveis - as versões anteriores do MATLAB JIT não eram suficientemente inteligentes para saber se você as estava usando como variáveis ou como unidades imaginárias, e portanto desative muitas otimizações possíveis.
Seu código, portanto, ficaria mais lento apenas pela presença i
e j
como variáveis, e aceleraria se você as alterasse para outra coisa. É por isso que, se você ler muitos códigos do MathWorks, verá ii
e será jj
usado amplamente como índices de loop. Por um tempo, o MathWorks pode até ter aconselhado não oficialmente as pessoas a fazerem elas mesmas (embora elas sempre aconselhem oficialmente as pessoas a programarem por elegância / manutenção, em vez de fazer o que o JIT atual faz, pois é um alvo móvel em cada versão).
Mas isso já faz muito tempo, e hoje em dia é uma questão de "zumbi" que é realmente muito menos importante do que muitas pessoas ainda pensam, mas se recusa a morrer.
Em qualquer versão recente, é realmente uma preferência pessoal usar i
ou j
como nomes de variáveis ou não. Se você trabalha muito com números complexos, convém evitar, i
e j
como variáveis, evitar qualquer pequeno risco potencial de confusão (embora você também queira / em vez disso use apenas 1i
ou 1j
ainda menos confusão e desempenho um pouco melhor) )
Por outro lado, em meu trabalho típico, nunca lido com números complexos e acho meu código mais legível se me sentir livre para usar i
e j
como índices de loop.
Eu vejo muitas respostas aqui que dizem: Não é recomendado ... sem dizer quem está fazendo isso. Aqui está a extensão das recomendações reais do MathWorks, a partir da documentação atual para i
:
Como i é uma função, ela pode ser substituída e usada como uma variável. No entanto, é melhor evitar o uso de iej para nomes de variáveis se você pretende usá-los em aritmética complexa. [...] Para velocidade e robustez aprimorada, você pode substituir o complexo iej por 1i.
i
,j
,k
como os nomes de variáveis de loop genéricos.