Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тело файла с любыми выражениями

End

Операторы

Otherwise

Операторы

%выполняется, если <выражение>=<значение2>

...

%выполняется, если <выражение>не совпало

%ни с одним значением

Условия (операторы отношения). В MATLAB используются следующие операторы отношения:

 

Обозначение Значение
< меньше чем
> больше чем
<= меньше или равно
>= больше или равно
== равно
~= не равно

 

 

Отметим, что знак = используется в операторах присваивания, в то время как

знак == используется в операторах отношения. Операторы отношения (или, другими словами, логические переменные, которые они создают) могут объединяться с помощью логических операторов:

 

Обозначение Значение
& И
| ИЛИ
~ НЕ

 

Когда эти операторы применяются к скалярам, то результатом является тоже

скаляр 1 или 0 в зависимости от того, является ли результат истиной или ложью. Попробуйте вычислить 3 <5, 3>5, 3==5 и 3==3. Когда операторы отношения применяются к матрицам одного размера, результатом является матрица того же размера, у которой в качестве элементов стоят 0 или 1, в зависимости от соотношения между соответствующими элементами исходных матриц. Попробуйте вычислить a=rand(5), b=triu(a), a ==b. Операторы while и if интерпретируют отношение между матрицами как истинное в том случае, если результирующая матрица не имеет нулевых элементов.

Так, если вы хотите выполнить оператор в том случае, когда матрицы A и B

полностью совпадают, вы можете написать

 

if A ==B <операторы>end

 

но если вы хотите выполнить оператор в том случае, когда матрицы A и B не равны, вы должны ввести

if any(any(A.=B))<оператор>end

или, что проще,

if A ==B else <оператор>end.

 

Заметим, что конструкция

if A.=B, <оператор>, end

почти наверняка не даст того, что нужно, поскольку оператор будет выполняться, только если каждый элемент матрицы A будет отличаться от соответствующего элемента матрицы B. Для сведения матричных отношений к вектору или скаляру можно воспользоваться функциями any и all. В предыдущем примере необходимо использование функции any два раза, поскольку эта функция – векторная.

Функция find. Оператор k=find(x) возвращает вектор k номеров ненулевых элементов вектора/матрицы x. Если x – матрица, то при определении индексов она рассматривается как вектор, образованный последовательно соединенными столбцами матрицы. Вектор find(x) можно использовать совместно с операторами отношения, поскольку результатом применения оператора отношения к матрицам является матрица из 0 и 1 (ложь или истина). Таким образом, можно с помощью одного оператора find определить и записать сразу все индексы матрицы, удовлетворяющие некоторому условию. Если при этом вспомнить, что оператор цикла for допускает форму for k=KK,где KK – целый вектор, то удобно использовать их вместе. Например, если вам необходимо выполнить <оператор> только для тех элементов матрицы, которые больше 3,то удобно это сделать следующим образом:

 

for i=find(A>3)

<оператор>

end;

 

При отладке выражений и программ в окне Редактора-отладчика сообщения об ошибках выдаются в командное окно MATLAB.

М-файлы бывают двух типов: сценарии и функции. Для их создания необходимо вызвать редактор m -файлов командой edit в командном окне либо последовательностью File→New→M-file из меню командного окна

M -файл-сценарий, именуемый также Script -файлом, является просто записью серии команд без входных и выходных параметров. Он имеет следующую структуру:

 

%Основной комментарий

%Дополнительный комментарий

 

Важны следующие свойства файлов-сценариев:

– они не имеют входных и выходных аргументов;

– работают с данными из рабочей области;

– в процессе выполнения не компилируются;

– представляют собой зафиксированную в виде файла последовательность операций, полностью аналогичную той, что используется в сессии при работе в командном окне.

Основным комментарием является первая строка текстовых комментариев, а дополнительным – последующие строки. Основной комментарий выводится при выполнении команд lookfor и help имя_каталога. Полный комментарий выводится при выполнении команды help Имя_файла.

Использование m -файла-сценария состоит в вызове его в заданное место файла для выполнения определяемых им действий.

М -файл-функция является типичным объектом языка программирования системы MATHLAB. Одновременно он является полноценным модулем с точки зрения структурного программирования, поскольку содержит входные и выходные параметры и использует аппарат локальных переменных. Структура такого модуля с одним выходным параметром выглядит следующим образом:

 

function vаг = f_name(Список_параметров)

%Основной комментарий

%Дополнительный комментарий

<== предыдущая лекция | следующая лекция ==>
Операторы | Var1-выражение
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 403; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.