- •Некоторые сведения о пакете Matlab.
- •Данные в ml
- •Матрицы
- •Операции в ml
- •Логические операции:
- •Приоритет операций в ml:
- •Тригонометрические функции.
- •Особые матрицы
- •Операции с векторами и матрицами.
- •Выполнение операций над матрицами.
- •Специальные функции для матриц.
- •Действия с элементами матрицы
- •Анализ данных (для постолбцовой обработке матриц)
- •Действия с полиномами (многочленами)
- •Графика в ml
- •Диаграммы и гистограммы.
- •Круговые диаграммы.
- •Программирование в ml
- •Операторы языка
- •Операторы ввода/вывода
- •Операторы цикла и условные операторы.
- •Операторы цикла.
- •Оператор цикла с параметром:
- •Оператор цикла с предусловием:
- •Условный оператор.
- •Оператор переключения (выбора).
- •Функция eval
- •Функция menu.
- •Файлы функции
- •Вычисление интеграла.
- •Нахождение нулей функции.
- •Решение систем дифференциальных уравнений.
Условный оператор.
Условный оператор позволяет организовать ветвления в программе и имеет следующую синтаксическую конструкцию:
if (<логическое выражение1>)
<операторы>
[elseif (<логическое выражение2>)
<операторы>
elseif (<логическое выражение3>)
<операторы>
…]
else
<операторы>
end
В этой конструкции может быть произвольное количество вложений ветвей elseif.
Пусть необходимо по введенной с клавиатуры температуре воздуха определить погоду. Введем следующий текст:
>> t=input('введи температуру')
введи температуру -4
t =
-4
>> if (t<0)
s='мороз'
elseif and(t>0,t<=10)
s='холодно'
elseif and(t>10,t<=20)
s='тепло'
else
s='жарко'
end
В результате выполнения этого фрагмента программы получим на экране:
s =
мороз
Условие может быть записано и в такой форме:
(t>0)&(t<=10)
Оператор переключения (выбора).
Если необходимо сделать множественный выбор, можно воспользоваться оператором переключения, синтаксическая конструкция которого приведена ниже.
Switch <ключевое выражение>
Case <список значений1
<опреаторы>
Case <список значений2>
<операторы>
…[Otherwise
<операторы>]
End
Сначала вычисляется значение ключевого выражения. Затем это значение ищется в списке значений. Если совпадение найдено, то выполняются операторы соответствующего блока, в противном случае выполняются операторы, стоящие после otherwise. Ключевое выражение и список значений могут быть либо скалярным числовым значением, либо текстовой строкой.
Пример.
Пусть необходимо по введенному с клавиатуры номеру месяца определить время года. Ниже приведен текст script-файла с именем season.m.
n=input('введи ном. мес ')
switch n
case 1,2,12
disp('зима')
case 3,4,5
disp('весна')
case 6,7,8
disp('лето')
case 9,10,11
disp('осень')
otherwise
disp('ошибка')
end
Вызовем программу для выполнения и получим:
>> season
введи ном. мес 11
n =
11
осень
Функция eval
В ML имеется возможность сформировать требуемую команду в виде строки символов, а затем выполнить ее, как обычную команду, набранную в командном окне. Для этого предназначена встроенная функция eval.
Метод задания команд в виде текстовых строк и их выполнения с помощью этой функции, используется при написании m-файлов, т. к. такой метод позволяет реализовывать более эффективные алгоритмы решения задач.
еval(‘текст’) – предназначена для выполнения команды, заданной текстом, как команды ML.
Например, eval(‘2*2+3’) выводит на экран 7.
Команда eval(‘<имя функции>’) выведет на экран результат выполнения операторов, приведенных в функции с соответствующим именем.
Функция menu.
Эта функция предназначена для вывода на экран окна с выпадающим меню, которое имеет заголовок и кнопки с названиями пунктов меню. Количество кнопок должно быть равно количеству пунктов меню.
k=menu(‘заголовок меню’,’пункт 1’,…,’пункт n’)
Номер выбранной кнопки попадает в переменную k.
Пример.
Пусть необходимо построить график функции на заданном интервале от 0 2pi, цветом, выбранным из меню.
Напишем script-файл:
k=menu ('bbbb','красный', 'зеленый','синий')
color=['r'
'g'
'b'];
t=0:0.1:2*pi;
s=sin(t);
plot(t,s,color(k))
На экране появляется меню вида:
Выбрав нужный пункт меню, получим график функции выбранным цветом.
Для организации обработки меню можно использовать цикл while и функцию eval. Для этого необходимо задать символьную матрицу, например, D, состоящую из названий файлов, соответствующих пунктам меню (заданий). Строки символьной матрицы должны иметь одинаковую длину. Предположим, что необходимо выполнить 3 задания.
D=[‘f1 ’
‘f2 ’
‘f3...’
‘break‘
while n<4
n=menu(‘заголовок’,’пункт1’,’пункт2’,’пункт3’,’выход’)
eval(D(n,:))
end
Каждая строка матрицы содержит имя одного из файлов, реализующих соответствующий пункт меню. В n – ой строке матрицы находится название файла, выполняющего n –й пункт меню. Выбрать из матрицы название файла, можно указав D(n,:). В результате выполнения этой команды в n записывается номер выбранного пункта меню. Функция eval с таким параметром запускает соответствующий файл для выполнения.