Команда 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, то есть пропускаются только оставшиеся опе-раторы данного внутреннего цикла. Для применения данной команды нужно сформировать соответствующее логическое условие.