Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Программирование в среде MATLAB
Управление потоками MATLAB имеет пять видов структур управления потоками: • оператор if • оператор switch • циклы for • циклы while • оператор break
В том случае, когда некоторая группа операций должна повторно выполняться несколько раз, используют операторы цикла.
а) оператор цикла с неизвестным числом повторений (while)
while выражение < оператор> ... < оператор> end
Операторы, указанные в теле цикла, выполняются, пока выражение истинно.
Пример: fact=1; k=1; while fact< 1e5 fact=fact*k; k=k+1; end
б) оператор цикла с известным числом повторений (for) for переменная цикла = начальное значение: < приращение> : конечное значение < оператор> ... < оператор> end
Операторы, указанные в теле цикла, выполняются заданное число раз. При этом переменная цикла последовательно принимает все значения от начального до конечного с приращением после каждого прохода цикла.
for i=1: 1: 100 s=s+5 end Замечание: Хорошим стилем являются отступы при использовании циклов для лучшей читаемости, особенно, когда они вложенные. for i = 1: m for j = 1: n H(i, j) = 1/(i+j); end; end
в) оператор условного ветвления
Оператор else не содержит логического условия. Инструкции, связанные с ним, выполняются, если предшествующий оператор if ложен.
Оператор elseif содержит логическое условие, которое вычисляется, если предшествующий оператор if ложен. Оператор elseif может многократно использоваться внутри оператора условия if.
Пример:
if n< 0 a=2*n; elseif rem(n, 2)==0; a=n/2; else a=(n+1)/2; Если n> 0 b нечетное, увеличить на 1 и разделить. end
г) оператор переключения switch…case…otherwise…end
Оператор switch работает, сравнивая значение вычисленного выражения со значениями групп case. Если значение выражения в операторе switch совпадает со значением, указанным в case, то выполняются соответствующая группа операций до следующего оператора case или otherwise, или end. Оператор otherwise выполняется, если < выражение> не совпало ни с одним из значений.
Пример: switch input_num % выч. выражение case –1 % значение disp ('минус один') % выводит строку text в рабочее окно MATLAB case 0 disp ('нуль') case 1 disp ('плюс один') otherwise disp ('другое значение') end
д) оператор досрочного выхода из цикла
break
Оператор break позволяет досрочно выходить из циклов for или while. Во вложенных циклах break осуществляет выход только из самого внутреннего цикла. for i=1: 1: 100 s=s+5 if s> 300 then break; end; end 1.6.2 Работа c М-файлами Если требуется выполнять большую последовательность команд или повторять группу команд для различных значений входных переменных, работа в режиме командной строки становится неудобной. Для облегчения работы MATLAB предоставляет возможность организации вычислений в виде так называемых М-файлов. М-файлы являются обычными текстовыми файлами, которые содержат последовательности команд, операторов, функций и т.д., необходимых для вычислений. В состав системы MATLAB входит редактор/отладчик M-файлов. Наиболее удобно использовать инструментальную панель командного окна этого редактора/отладчика. Для создания м-файла в меню File основного окна MatLab и в пункте New выберите подпункт M-file. Новый файл открывается в редакторе М-файлов. Наберите в редакторе команды, приводящие к построению двух графиков в одном графическом окне.
x = [0: 0.1: 7]; f = exp(-x); subplot(1, 2, 1) plot(x, f) g = sin(x); subplot(1, 2, 2) plot(x, g)
Сохраните теперь файл с именем mydemo.m в подкаталоге work основного каталога MatLab, выбрав пункт Save as меню File редактора. Для запуска на выполнение всех команд, содержащихся в файле, следует выбрать пункт Run в меню Debug. На экране появится соответствующее графическое окно. Созданный М-файл можно как угодно редактировать и повторять все команды заново. При этом графическое окно будет отражать все изменения, которые вы сделали в файле. Для выполнения только части команд из файла, следует их сначала выделить, а затем выполнить из пункта Evaluate selection меню Text. В редакторе М-файлов может быть открыто одновременно несколько файлов; переход от одного к другому осуществляется при помощи закладок с их именами внизу окна редактора. Открытие существующего М-файла производится из пункта Open меню File рабочей среды, либо редактора М-файлов.
1.6.3 Типы М-файлов. Файл-программы и файл-функции М-файлы бывают двух типов: файл-программы (Script M-files), содержащие последовательность команд, и файл-функции (Function M-files), в которых описываются функции, определяемые пользователем для своих целей. Файл mydemo, который Вы уже создали, это файл-программа. Все переменные, объявленные в ней, становятся доступными в рабочей среде после ее выполнения. Фактически, созданный М-файл является новой командой, которую понимает МatLab. Теперь в командной строке достаточно набрать команду mydemo и появится графическое окно, соответствующее командам программы mydemo.m. Как правило, М-файлы хранятся в каталоге пользователя. Чтобы МatLab мог найти их, следует установить пути, указывающее расположение М-файла. Файл-программы являются последовательностью команд и не имеют входных и выходных аргументов. Для использования численных методов и при программировании собственных приложений необходимо уметь составлять файл-функции, которые выполняют действия с входными аргументами и возвращают результат в выходных аргументах. Предположим, что в вычислениях часто необходимо использовать функцию
Имеет смысл один раз написать файл-функцию, чтобы потом вызывать ее всюду, где необходимо.
Откройте в редакторе М-файлов новый файл и наберите текст
function f = myfun(x) f = exp(-x)*sqrt((x^2+1)/(x^4+0.1));
Слово function в первой строке означает, что данный файл содержит файл-функцию. Первая строка является заголовком файл-функции, где размещается имя функции myfun, один входной аргумент x и один выходной – f. После заголовка следует тело функции (здесь это одна строка), где и вычисляется ее значение. Теперь сохраните файл в рабочем каталоге (укажите полностью Ваш путь). При сохранении появляется диалоговое окно с уже готовым именем myfun. Не изменяйте его. Теперь созданную функцию можно использовать так же, как и встроенные функции, из командной строки: > > y=myfun(1.3) y = 0.2600
Задания к лабораторной работе № 1 Задание 1 Таблица 1.2
Задание 2. Вычислить значения функций 1 и 2 (табл. 1.3) для аргумента в заданном интервале [a b] c шагом h. Вывести графики функций одновременно на одном графике в декартовых координатах. Для разных графиков использовать разный тип линий. Таблица 1.3
Задание 3. Вычислить значения функции двух аргументов (табл. 1.4) в заданном диапазоне. Вывести функцию в виде 5 трехмерных графиков разного типа. Вывести функцию в виде 2 контурных графиков разного типа.
Таблица 1.4
ЛАБОРАТОРНАЯ РАБОТА №2 |
Последнее изменение этой страницы: 2019-05-17; Просмотров: 391; Нарушение авторского права страницы