Доброго времени суток. Сегодня речь пойдёт о циклах и условиях в 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 можно использовать логические операторы И — && и ИЛИ — ||, записывая несколько логических выражений в условие.
Если есть вопросы по статье, пишите в комментариях.
Будьте первым, кто оставит комментарий