Как уже отмечали другие, в MATLAB также есть циклы for.
help for
должен дать вам все, что вам нужно о том, как это работает. Отличие от C в том, что цикл может проходить по объектам, а не только по целому числу:
objects = struct('Name', {'obj1', 'obj2'}, 'Field1', {'Value1','Value2'});
for x = objects
disp(sprintf('Object %s Field1 = %d', x.Name, x.Field1))
end
Этот пример выведет:
Object obj1 Field1 = Value1
Object obj2 field1 = Value2
Это можно было бы сделать как
for i=1:length(objects)
x = objects(i);
disp(sprintf('Object %s Field1 = %d', x.Name, x.Field1))
end
А теперь то, что я действительно хотел сказать: Если вы когда-нибудь напишете цикл for в MATLAB, остановитесь и подумайте! . Для большинства задач вы можете векторизовать код так, чтобы он использовал матричные операции и встроенные функции вместо циклического перемещения по данным. Обычно это дает огромный прирост скорости . Нередко векторизованный код выполняется в 100 раз быстрее, чем зацикливание кода. В последних версиях MATLAB есть JIT-компиляция, которая делает его менее драматичным, чем раньше, но все же: Всегда векторизируйте, если можете .