В старых версиях MATLAB имелись веские основания избегать использования iиj в качестве имен переменных - ранние версии MATLAB JIT были не достаточно умен , чтобы сказать , были ли вы использовать их в качестве переменных или мнимых единиц, и будет , следовательно , отключите много других возможных оптимизаций.
Следовательно, ваш код будет работать медленнее только благодаря наличию переменных iи jкак переменных, и ускорится, если вы измените их на что-то другое. Вот почему, если вы прочитаете большую часть кода MathWorks, вы увидите iiи jjдовольно широко будете использовать его в качестве индексов цикла. Некоторое время MathWorks, возможно, даже неофициально советовал людям делать это самостоятельно (хотя они всегда официально советуют людям программировать на элегантность / ремонтопригодность, а не на то, что делает текущий JIT, поскольку это движущаяся цель для каждой версии).
Но это довольно давно, и в настоящее время это проблема «зомби», которая на самом деле гораздо менее важна, чем многие все еще думают, но отказывается умирать.
В любой недавней версии, это действительно личное предпочтение, использовать iили jкак имена переменных или нет. Если вы много работаете с комплексными числами, вы можете избегать iи jкак переменные, чтобы избежать любого небольшого потенциального риска путаницы (хотя вы также можете / вместо этого захотеть использовать только 1iили 1jдля еще меньшей путаницы и немного повысить производительность ).
С другой стороны, в моей типичной работе я никогда не имею дело с комплексными числами, и я считаю, что мой код более читабелен, если я чувствую себя свободным в использовании iи в jкачестве индексов цикла.
Я вижу здесь много ответов, в которых говорится, что это не рекомендуется ... не говоря, кто делает это, рекомендуя. Вот степень фактических рекомендаций MathWorks из текущей документации для i:
Поскольку я - функция, ее можно переопределить и использовать в качестве переменной. Однако лучше избегать использования i и j для имен переменных, если вы собираетесь использовать их в сложной арифметике. [...] Для скорости и улучшенной устойчивости вы можете заменить комплекс i и j на 1i.
i,j,kкак общие имена переменных цикла.