Skip to content

Циклы и условия: if, switch, for, while

Доброго времени суток. Сегодня речь пойдёт о циклах и условиях в Matlab. Материал, который взят за основу — это help в Matlab и несколько простых примеров, которые мы с вами и разберем.

Условия в MATLAB

Ни один язык программирования не обходится без таких конструкций как условия, именно об этом мы с вами и поговорим:
Начнём с синтаксиса условия if и посмотрим на формальный вариант записи в справке:

if expression, statements, end

Что значит:

if Условие, Действие, end

Теперь примеры:

x = 1;
y = 61;
if ((x >= 0.90) && (y >= 60))
   disp('ok');
end;

&& — логически оператор умножения (логическая «И»).
И вот пример с else:

x = 1;
y = 50;
if ((x >= 0.90) && (y >= 60))
   disp('ok');
else 
   disp('not right')
end;

В отличие от 1 примера, здесь выведется «not right».
Пару слов теперь о switch. Формально в справке:

Syntax
switch switch_expr
 case case_expr
    statement, ..., statement
  case {case_expr1, case_expr2, case_expr3, ...}
    statement, ..., statement
  otherwise
    statement, ..., statement
end

Более приземлённо:

Syntax
switch switch_expr
 case Значение - 1
    Действие
  case {Зачение - 2, Знчение - 3, Значение - 4, ...}
    Действие
  В остальных случиях
    Действие
end

Это значит, что если заданная переменная равна значению в case Значение — 1, то выполняется действие при case Значение — 1 и так далее. Если ни один из case не подошёл выполняется действие при otherwise.
Вот пример:

method = 'Bilinear';
switch lower(method)
   case {'linear','bilinear'}
      disp('Method is linear')
   case 'cubic'
      disp('Method is cubic')
   case 'nearest'
      disp('Method is nearest')
   otherwise
      disp('Unknown method.')
end

Циклы в MATLAB

Теперь перейдём к циклам, начнём с for.
В справке это записано в виде

Syntax
for index = values
   program statements
          :
end

В приземлённом виде это значит:

Syntax
for переменная = значению
   действие
end

Не будем задерживаться на официальных формулировках, лучше к понятным и любимым примерам

for m = 1:10
    m
end

Вот так выглядит самый распространённый способ использования for. В этом цикле мы просто выводим значение m.
Второй способ с использованием шага (step)

for s = 1.0: -0.1: 0.0
   disp(s)
end

В данном случае цикл for идёт от 1 до 0 с шагом -0.1.
Ещё один вариант:

for s = [1,5,8,17]
   disp(s)
end

В данном случае переменная s будет последовательно приравниваться 1, 5 ,8 , 17 и, соответственно, выводиться.
А также с for очень удобно выводить вектора. Вот:

for e = eye(5)
  disp('Current value of e:')
  disp(e)
end

В данном примере идёт последовательное обращение к элементам вектора e.

Цикл while:
Формально в справке:

Syntax
while expression
   program statements
          :
end

Приземлённо:

Syntax
while Условие
   Действие
end

И давайте сразу к примеру (как это в реальной жизни используется).

eps = 10;
while eps > 1
    eps = eps - 1
end

Пока в условие (eps > 1) выполняется, цикл выполняет действие
(eps = eps-1).
Также в условии while можно использовать логические операторы И — && и ИЛИ — ||, записывая несколько логических выражений в условие.

Если есть вопросы по статье, пишите в комментариях.

Опубликовано вMatlab

Будьте первым, кто оставит комментарий

    Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *