Управление потоками
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
в) оператор условного ветвления
if <логическое выражение> <операторы> end | if <логическое выражение> <операторы> elseif <логическое выражение> <операторы> else <операторы> end
|
if <логическое выражение> <операторы> else <операторы> 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
1.Создать матрицу A | ||||||||
Вариант1 | Вариант2 | Вариант3 | Вариант4 | Вариант5 | Вариант6 | Вариант7 | Вариант8 | |
-1 2 3 5 7 8 9 1 4 5 6 4 11 1 5 9 | 8 4 6 9 2 7 4 10 3 8 2 6 -5 3 7 3 | 8 9 13 2 -6 6 4 5 8 4 6 4 13 1 8 9 | 8 6 7 5 7 3 7 15 4 8 9 2 8 9 8 5 | 1 -2 3 5 -7 8 9 1 11 3 2 4 1 1 4 -9 | 1 5 3 2 6 7 3 6 3 4 6 7 1 5 8 2 | -1 2 3 5 3 8 9 1 5 3 6 4 7 7 5 1 | 1 5 6 4 2 8 9 1 4 8 6 4 4 5 5 -1 | |
Вариант9 | Вариант10 | Вариант11 | Вариант12 | Вариант13 | Вариант14 | Вариант15 | Вариант16 | |
-1 4 8 5 7 7 9 2 4 8 6 1 1 1 4 0 | -4 4 6 9 2 5 4 10 3 8 -6 6 8 3 7 2 | 5 4 3 2 -4 6 -4 5 8 5 6 2 3 1 8 91 | 8 6 7 51 0 7 -3 15 6 8 11 2 8 9 14 5 | 1 2 -3 15 5 8 -9 1 1 5 2 6 1 11 -5 -7 | 1 4 13 2 6 7 -4 6 3 -2 6 9 1 15 4 2 | -5 2 -5 5 3 2 3 1 1 3 3 4 0 -2 0 1 | 1 0 6 4 2 5 9 -11 5 9 0 4 6 5 5 -1 | |
Вариант17 | Вариант18 | Вариант19 | Вариант20 | Вариант21 | Вариант22 | Вариант23 | Вариант24 | |
0 9 13 2 -6 0 4 3 1 4 2 4 1 1 0 1 | 1 -3 3 5 -7 8 -6 1 11 0 0 4 0 1 4 -9 | -3 21 5 -2 -3 1 3 1 -1 3 2 4 1 0 1 0 | -4 5 1 9 2 5 0 10 1 8 -4 6 1 3 1 3 | -1 3 6 9 2 5 3 10 5 12 2 6 1 1 1 1 | 7 5 2 4 2 7 9 17 -4 1 -5 7 1 4 2 1 | |||
2. Вычислить сумму элементов матрицы А по строкам, по столбцам, а также сумму всех элементов матрицы A. | ||||||||
3. Транспонировать матрицу A. | ||||||||
4.Умножить матрицу А на 2. | ||||||||
5. Найти квадратный корень из элементов матрицы А. | ||||||||
6 .Возвести в квадрат все элементы матрицы A. | ||||||||
7.Создать массив X, содержащий 2 строки: | ||||||||
Вариант 1
1 строка - числа от 1 до 100, в порядке возрастания
2 строка - числа от 1 до 100, в порядке убывания
2
1 строка - нечетные числа от 1 до 100, в порядке возрастания
2 строка – четные числа от 1 до 100, в порядке возрастания
3
1 строка - нечетные числа от 1 до 100, в порядке возрастания
2 строка - нечетные числа от 1 до 100, в порядке убывания
4
1 строка - числа от 1 до 100, кратные 3-м, в порядке возрастания
2 строка - числа от 1 до 100, кратные 3-м, в порядке убывания
5
1 строка - числа от 1 до 100, кратные 4-м, в порядке возрастания
2 строка - числа от 1 до 100, кратные 4-м, в порядке убывания
6
1 строка - числа от 1 до 100, кратные 5-и, в порядке возрастания
2 строка - числа от 1 до 100, кратные 5-и, в порядке убывания
7
1 строка - числа от 1 до 100, кратные 6-и, в порядке возрастания
2 строка - числа от 1 до 100, кратные 6-и, в порядке убывания
8
1 строка - числа от 1 до 100, кратные 7-и, в порядке возрастания
2 строка - числа от 1 до 100, кратные 7-и, в порядке убывания
9
1 строка - нечетные числа от 1 до 100, в порядке убывания
2 строка – четные числа от 1 до 100, в порядке возрастания
10
1 строка - четные числа от 1 до 100, в порядке убывания
2 строка – нечетные числа от 1 до 100, в порядке убывания
11
1 строка - числа от 1 до 100, кратные 3-м, в порядке убывания
2 строка - числа от 1 до 100, кратные 3-м, в порядке возрастания
12
1 строка - числа от 1 до 100, в порядке убывания
2 строка - числа от 1 до 100, в порядке возрастания
13
1 строка - числа от 1 до 100, кратные 6-и, в порядке убывания
2 строка - числа от 1 до 100, кратные 6-и, в порядке возрастания
14
1 строка - числа от 1 до 100, кратные 7-и, в порядке убывания
2 строка - числа от 1 до 100, кратные 7-и, в порядке убывания
15
1 строка - числа от 1 до 100, кратные 7-и, в порядке убывания
2 строка - числа от 1 до 100, кратные 7-и, в порядке возрастания
16
1 строка - числа от 1 до 100, кратные 7-и, в порядке возрастания
2 строка - числа от 1 до 100, кратные 7-и, в порядке возрастания
17
1 строка - числа от 1 до 100, кратные 4-м, в порядке возрастания
2 строка - числа от 1 до 100, кратные 4-м, в порядке возрастания
18
1 строка - числа от 1 до 100, кратные 4-м, в порядке убывания
2 строка - числа от 1 до 100, кратные 4-м, в порядке убывания
19
1 строка - числа от 1 до 100, кратные 4-м, в порядке убывания
2 строка - числа от 1 до 100, кратные 4-м, в порядке возрастания
20
1 строка - четные числа от 1 до 100, в порядке убывания
2 строка – четные числа от 1 до 100, в порядке убывания
21
1 строка - числа от 1 до 100, кратные 3-м, в порядке возрастания
2 строка - числа от 1 до 100, кратные 3-м, в порядке возрастания
22
1 строка - числа от 1 до 100, в порядке убывания
2 строка - числа от 1 до 100, в порядке убывания
Дата: 2018-12-21, просмотров: 856.