En versiones anteriores de MATLAB, solía haber una buena razón para evitar el uso de i
y j
como nombres de variables: las primeras versiones de MATLAB JIT no eran lo suficientemente inteligentes como para saber si las estaba usando como variables o como unidades imaginarias, y por lo tanto apague muchas optimizaciones posibles.
Por lo tanto, su código se volvería más lento por la sola presencia de i
y j
como variables, y se aceleraría si los cambiara a otra cosa. Es por eso que, si lee mucho código de MathWorks, verá ii
y jj
usará bastante ampliamente como índices de bucle. Por un tiempo, MathWorks podría incluso haber aconsejado extraoficialmente a las personas que lo hicieran ellos mismos (aunque siempre aconsejan oficialmente a las personas que programen por elegancia / mantenimiento en lugar de lo que sea que haga el JIT actual, ya que es un objetivo móvil en cada versión).
Pero eso fue hace mucho tiempo, y hoy en día es un problema de "zombie" que es mucho menos importante de lo que mucha gente todavía piensa, pero se niega a morir.
En cualquier versión reciente, es realmente una preferencia personal si usar i
y j
como nombres de variables o no. Si hace mucho trabajo con números complejos, puede evitar i
y, j
como variables, evitar cualquier pequeño riesgo potencial de confusión (aunque también puede / solo desea usar 1i
o, 1j
para menos confusión, y un rendimiento un poco mejor). )
Por otro lado, en mi trabajo típico nunca trato con números complejos, y encuentro que mi código es más legible si me siento libre de usar i
y j
como índices de bucle.
Veo muchas respuestas aquí que dicen que no se recomienda ... sin decir quién está haciendo esa recomendación. Aquí está el alcance de las recomendaciones reales de MathWorks, de la documentación de la versión actual para i
:
Como i es una función, puede anularse y usarse como una variable. Sin embargo, es mejor evitar usar i y j para nombres de variables si tiene la intención de usarlos en aritmética compleja. [...] Para mayor velocidad y robustez mejorada, puede reemplazar complejos i y j por 1i.
i
,j
,k
como los nombres de las variables de bucle genéricos.