С помощью операторов управления контуром можно многократно выполнять блок кода. Существует два типа петель:
for операторы циклически повторяют определенное число раз и отслеживают каждую итерацию с увеличивающейся переменной индекса.
Например, предварительно назначьте 10-элементный вектор и рассчитайте пять значений:
x = ones(1,10);
for n = 2:6
x(n) = 2 * x(n - 1);
endwhile до тех пор, пока условие остается верным.
Например, найти первое целое число n для которых factorial(n) - 100-значный номер:
n = 1;
nFactorial = 1;
while nFactorial < 1e100
n = n + 1;
nFactorial = nFactorial * n;
endДля каждого цикла требуется end ключевое слово.
Рекомендуется делать отступы в контурах для удобочитаемости, особенно когда они вложены (то есть когда один цикл содержит другой цикл):
A = zeros(5,100);
for m = 1:5
for n = 1:100
A(m, n) = 1/(m + n - 1);
end
endВы можете программно выйти из цикла с помощью break оператор или перейти к следующей итерации цикла с помощью continue заявление. Например, подсчитайте количество строк в справке для magic функция (то есть все строки комментария до пустой строки):
fid = fopen('magic.m','r');
count = 0;
while ~feof(fid)
line = fgetl(fid);
if isempty(line)
break
elseif ~strncmp(line,'%',1)
continue
end
count = count + 1;
end
fprintf('%d lines in MAGIC help\n',count);
fclose(fid);Совет
Если вы непреднамеренно создаете бесконечный цикл (цикл, который никогда не заканчивается сам по себе), остановите выполнение цикла, нажав клавиши Ctrl + C.