Trong các phiên bản cũ của MATLAB, đã từng có một lý do chính đáng để tránh sử dụng i
và j
làm tên biến - các phiên bản ban đầu của MATLAB JIT không đủ thông minh để biết bạn đang sử dụng chúng làm biến số hay là đơn vị tưởng tượng, và do đó sẽ tắt nhiều tối ưu hóa có thể.
Do đó, mã của bạn sẽ trở nên chậm hơn chỉ bằng sự hiện diện của i
và j
như các biến và sẽ tăng tốc nếu bạn thay đổi chúng thành một thứ khác. Đó là lý do tại sao, nếu bạn đọc qua nhiều mã MathWorks, bạn sẽ thấy ii
và jj
sử dụng khá rộng rãi như các chỉ số vòng lặp. Trong một thời gian, MathWorks thậm chí có thể khuyên mọi người tự làm điều đó một cách không chính thức (mặc dù họ luôn chính thức khuyên mọi người lập trình cho sự thanh lịch / duy trì hơn là bất cứ điều gì JIT hiện tại làm, vì đó là mục tiêu di chuyển của mỗi phiên bản).
Nhưng đó là một thời gian dài trước đây và ngày nay, đó là một vấn đề "thây ma" thực sự ít quan trọng hơn nhiều người vẫn nghĩ, nhưng từ chối chết.
Trong bất kỳ phiên bản gần đây, nó thực sự là một sở thích cá nhân có nên sử dụng i
và j
làm tên biến hay không. Nếu bạn làm nhiều việc với số phức, bạn có thể muốn tránh i
và j
làm biến, để tránh mọi rủi ro nhỏ có thể gây nhầm lẫn (mặc dù bạn cũng có thể / thay vào đó chỉ muốn sử dụng 1i
hoặc 1j
ít nhầm lẫn hơn và hiệu suất tốt hơn một chút ).
Mặt khác, trong công việc điển hình của tôi, tôi không bao giờ xử lý các số phức và tôi thấy mã của mình dễ đọc hơn nếu tôi cảm thấy thoải mái khi sử dụng i
và j
như các chỉ số vòng lặp.
Tôi thấy rất nhiều câu trả lời ở đây nói rằng Không nên ... mà không nói ai đang làm điều đó. Đây là phạm vi đề xuất thực tế của MathWorks, từ tài liệu phát hành hiện tại cho i
:
Vì tôi là một hàm, nó có thể được ghi đè và được sử dụng như một biến. Tuy nhiên, tốt nhất là tránh sử dụng i và j cho tên biến nếu bạn có ý định sử dụng chúng trong số học phức tạp. [...] Để tăng tốc và cải thiện độ bền, bạn có thể thay thế i và j phức tạp bằng 1i.
i
,j
,k
như tên biến vòng chung.