Команда continue
End
Statements
Использование в качестве индексов массивов
End
End
End
End
Statements
Команда for
End
While A
Команда while и пустые массивы
End
End
Statements
Команда while
End
Циклы с командой while обрабатывают оператор или группу операторов, находящихся в теле цикла, до тех пор, пока истинно проверяемой логическое условие при данной команде. Иными словами, операторы внутри цикла могут выполнться любое неопределенное заранее число раз. Ее синтаксис в общем случае имеет вид
while expression
Если логическое выражение expression имеет матричный вид, то для продолжения выполне-ния цикла все его элементы должны быть истинными, то есть равны логической единице. Чтобы привести матричное условие к скалярному, следует воспользоваться функциямиall иany. Например, следующий цикл находит первое целое число n, для которого факториалn! является 100-значным числом
n = 1;
while prod(1:n) < 1e100
n = n + 1;
Для выхода из петли while в любой момент нужноприменить в теле цикла команду break. При этом, естественно, следует сформировать соответствующее логическое условие выхода из цикла.
Если условие приwhile сводится к пустому массиву, то оно соответствует ложному выраже-нию, то есть последовательность команд
S1;
никогда не выполнит оператор S1 если A есть пустой массив.
Цикл с командой for обрабатывает оператор или группу опреаторов заранее заданное число раз. Ее синтаксис имеет вид
for index = start:increment:end
где index –является изменяемым целочисленным индексом с начальным и конечным значе-ниями start и end и приращением increment. По умолчанию, приращение равно 1, но вы мо-жете задать любое приращение, включая и отрицательное. При положительных индексах, выполнение прекращается когда значение индекса превышает конечное значение end; при отрицательных приращениях выполнение прекращается когда индекс становится меньше конечного значения.
Например, следующий цикл выполняется пять раз.
for i = 2:6
x(i) = 2*x (i–1);
Вы можете использовать вложенные циклы с комндой for:
for i = 1:m
for j = 1:n
A (i, j) = 1/(i + j – 1) ;
Внимание !Вы можете зачастую ускорить выполнение кодов в MATLAB-е путем замены циклов с forи while векторизованными кодами (см. ниже).
Индексы командыfor могут быть массивом значений. Например, рассмотрим массив Араз-мера m х n . Выражение
for i = A
приравнивает индексI вектору A(: , k). При первой итерации значение k равно 1; при второй итерации k равно 2 , и так до тех пор, пока k не становится равным n. Иными словами, цикл повторяется nраз, где nесть число столбцов в A. При этом, при каждой итерации индекс i является вектром, содержащим один из столбцов матрицы A.
Команда continue передает управление следующей итерации в циклах forили while,что приводит к перескакиванию через все оставшиеся операторы в теле цикла. В случае вложен-ных циклов, команда continueпередает управление к следующей итерации внешних по отно-шению к данному циклу команд forилиwhile, то есть пропускаются только оставшиеся опе-раторы данного внутреннего цикла. Для применения данной команды нужно сформировать соответствующее логическое условие.