Условни оператори и цикли в MatLab

Важна стъпка в създаването на пълноценни програми в MatLab е изучаването на оператори на клонове и цикли. С тяхна помощ можете да внедрите логиката на изпълнение на математически алгоритми и да създадете повтарящи се (итеративни, повтарящи се) изчисления.

Условна оператор if

За да може да се приложи логика в програмата, се използват условни оператори. Концептуално тези оператори могат да бъдат представени като възлови точки, достигайки до които програмата прави избор в коя от възможните посоки да продължи. Например трябва да определите дали дадена променлива arg съдържа положително или отрицателно число и да покажете съответното съобщение на екрана. За да направите това, можете да използвате оператора if (if), който извършва подобни проверки.

В най-простия случай синтаксисът за този оператор if е:

Ако стойността на параметъра "израз" съвпада със стойността "true", тогава изразът се изпълнява, в противен случай той се пропуска от програмата. Трябва да се отбележи, че "израз" е условен израз, в който се проверява някакво условие. Таблица 2.1 са представени варианти на прости логически изрази на оператора if.

Таблица 1. Прости булеви изрази

Вярно, ако a е по-голямо от b, а в противен случай е false.

Вярно, ако a е равно на b, а false - в противен случай.

Вярно, ако променлива a е по-голяма или равна на променлива b и в противен случай е false.

Вярно, ако променлива а не е равна на променлива b и в противен случай е false.

По-долу е даден пример за изпълнение на функцията sign (), която връща +1, ако числото е по-голямо от нула, -1 ако числото е по-малко от нула и 0, ако числото е нула:

функция my_sign x = 5; ако x> 0 disp (1); end, ако x% са изпълнени, ако условието е вярно,%% се изпълняват, ако условието е false false

Тогава горният пример може да бъде написан по следния начин:

функция my_sign x = 5; ако x> 0 disp (1); в противен случай, ако x% са изпълнени, ако израз1 е вярно, ако% са изпълнени, ако израз2 е вярно. elseif% ​​се изпълняват, ако израз N край

и се пише по следния начин:

функция my_sign x = 5; ако x> 0 disp (1); % се изпълнява, ако x> 0 elsei x = 0 и x = 0 & x 2:

функция my_if x = 1; ако x 2 disp ('x не принадлежи към диапазона от 0 до 2'); else disp ('x е в диапазона от 0 до 2'); край

Използвайки логическите оператори И, ИЛИ, НЕ, можете да създадете разнообразни сложни условия. Например можете да проверите дали променливата x попада в диапазона от -5 до 5, но не принадлежи към диапазона от 0 до 1. Очевидно това може да се приложи по следния начин:

функция my_if x = 1; if (x> = -5 & x 1) disp ('x принадлежи на [-5, 5], но не е включено в [0, 1]'); иначе disp ('x или не в [-5, 5] или в [0, 1]'); край

Обърнете внимание, че скобите са използвани в сложното състояние на съединението. Факт е, че приоритетът на операцията И е по-висок от приоритета на операцията ИЛИ и ако няма скоби, условието ще изглежда така: (x> = -5 и x 1. Очевидно такава проверка би дават различен резултат от очаквания.

Скобите се използват при програмирането, за да се промени приоритетът на изявленията. Подобно на аритметичните оператори, логическите оператори също могат да бъдат променяни по желание на програмиста. Чрез използване на скоби проверката се извършва първо в тях, а след това и извън тях. Ето защо в горния пример те са необходими за постигане на желания резултат.