Лекции по Matlab

Автор: Пользователь скрыл имя, 12 Ноября 2010 в 00:08, курс лекций

Описание работы

Переменные рабочего пространства. Арифметические выражения. Типы данных. Скрипты и функции. Операторы MATLAB. Работа с файлами. Работа с текстовыми файлами.

Работа содержит 1 файл

Лекции по MATLAB.doc

— 650.00 Кб (Скачать)

     Логические  операции с массивами производятся над элементами с одинаковыми  индексами. Результат операции –  массив той же размерности, что и  операнды, заполненный 0 и 1 в зависимости  от исхода операции.

>>a=[1 2; 3 4];

>>b=[2 0; 5 1];

>>c=a>=b

c=

    0 1

    0 1

     Элементарные  функции

     Ниже  приведен выборочно небольшой список из стандартной библиотеки MATLAB.

cos, sin, tan, cot соответствующие тригонометрические функции
exp, log, sqrt экспонента, логарифм, корень квадратный
ceil округление  в сторону +∞ (до ближайшего большего целого)
floor округление  в сторону -∞ (до ближайшего меньшего целого)
fix отбрасывание  дробной части
round округление  по математически правилам
gcd наибольший  общий делитель
lcm наименьшее  общее кратное
sign(x) знак аргумента: -1, если x<0; 0, если x=0; 1, если x>0
abs модуль
mod остаток от деления  с учетом знака делимого
rem остаток от деления
 

     Построение  простейших графиков функций в декартовых координатах

     Для построения графика y=f(x) необходимо сформировать вектор аргументов (x) и вектор значений (y) и вызвать функцию plot:

     >>x=[0:0.1:6.28];

     >>y=sin(x).*exp(-x);

     >>plot(x,y)

     График  функции sin(x)e-x будет отображен в отдельном окне (см. рис. 2).

Рис. 2. Простейший график функции

     Для размещения нескольких графиков существует 2 способа.

     Способ 1. Построить таблицы обеих функций  и вызвать plot:

     >>x1=[0:0.2:6.28];

     >>y1=sin(x1);

     >>y2=cos(x1);

     >>plot(x1,y1,x1,y2)

     Способ  2. Заблокировать создание нового графического окна вызовом функции hold

     >>plot(x1,y1)

     >>hold on

     >>plot(x1,y2) 

     В 3-м аргументе функции plot можно задать цвет линии, тип маркера, стиль линии.

     Цвета:

y желтый g зеленый
m малиновый b синий
c циановый w белый
r красный k черный

     Стиль линии:

- сплошная линия -. штрихпунктирная
: пунктирная  линия -- штриховая

     Тип маркера:

. жирная точка d ромбик
o кружок v треугольник с  вершиной вниз
x косоугольный  крестик ^ треугольник с  вершиной вверх
+ прямоугольный крестик < треугольник с  вершиной влево
* восьмиконечная  снежинка > треугольник с вершиной вправо
s квадратик p пятиконечная  звезда
none отсутствие  маркера h шестиконечная звезда

     Например, plot(x,y,':gd') отобразит график пунктирной линией зеленого цвета с маркерами в виде ромбиков. 

     Дополнительные  настройки графика

     title('Заголовок графика') – установка заголовка графика

     xlabel('название оси X') – подпись оси X

     ylabel('название оси Y') – подпись оси Y

     grid on – нанесение координатной сетки

     legend('sin','cos',4) – вывод легенды, 3-й аргумент – место вывода легенды может быть следующим:

-1 легенда размещается  вне поля графика, вверху справа
0 система выбирает лучшее место в поле графика, не перекрываемое  данными
1 легенда размещается  в правом верхнем углу (по умолчанию)
2 легенда размещается  в левом верхнем углу поля графика
3 легенда размещается  в правом нижнем углу поля графика
4 легенда размещается  в левом нижнем углу поля графика
 

     Двойная оцифровка осей

     Помогает, если диапазон изменения аргументов и значений функций не совпадает. Используется функция plotyy. Для 1-й функции ось X цифруется внизу, Y – слева, для 2-й соответственно вверху и справа (рис. 3).

     >>x=0:0.1:6.28;

     >>y1=sin(x);

     >>y2=sin(x)+cos(x);

     >>plotyy(x,y1,x,y2)

Рис. 3. Двойная оцифровка осей

 

     Деление области рисования

     Иногда  необходимо отобразить в одном окне несколько графиков. Для этого служит функция subplot, разделяющая область рисования на несколько прямоугольных областей равного размера, расположенных подобно элементам матрицы:

     subplot(row, col, cur),

где row – количество рядов, col – количество колонок, cur – порядковый номер подобласти, в которой очередная функция plot будет строить свой график.

>> x=0:0.2:2*pi;

>> y1=sin(x);

>> y2=cos(x);

>> y3=y1.*exp(-x);

>> y4=y1.*y2;

>> subplot(2,2,1);plot(x,y1);

>> subplot(2,2,2);plot(x,y2);

>> subplot(2,2,3);plot(x,y3);

>> subplot(2,2,4);plot(x,y4);

Рис. 4. Деление области рисования

     Графическое окно, в котором отображается график содержит элементы управления, предоставляющие  доступ к следующим функциям: масштабирование  графика, экспорт в графический  формат, изменение заголовка, легенд, стилей линий и т.д.

 

      Типы данных

     Символьные  массивы

     Символьные  векторы (массивы размерности 1xn) – обычные строки. Задание – в правой части оператора присваивания записывают цепочку символов, заключенную в одинарные кавычки.

     >>sv='abcdefgh

     sv=

     abcdefgh 

     Символьная  матрица (массив размерности mxn) должна состоять из m строк равной длины n.

     >>sm=['abcdefgh';'12345678']

     sm=

     abcdefgh

     12345678

     Полезные  функции:

size(sv) возвращает  число строк и число столбцов массива sv
length(sv) возвращает  количество символов
ndims(sv) возвращает  количество измерений
 

     Целочисленные данные

     В MATLAB предусмотрены функции конвертации вещественных типов в любой допустимый целый тип и наоборот.

int8 преобразование  в 1-байтовое целое со знаком -128..127
uint8 преобразование  в 1-байтовое целое без знака 0..255
int16 преобразование  в 2-байтовое целое со знаком -32 768..32767
uint16 преобразование  в 2-байтовое целое без знака 0..65535
int32 преобразование  в 4-байтовое целое со знаком -2 147 483 648..2 147 483 647
uint32 преобразование  в 4-байтовое целое без знака 0..4 294 967 295
double преобразование  числового аргумента в формат вещественного с удвоенной точностью  
single преобразование  числового аргумента в формат вещественного с одинарной точностью  

     >>x=int16(12)

     x=

     12

     Вызовом функции whos можно убедиться, что переменная x занимает 2 байта. Использование целочисленных данных экономит память и ускоряет операции.

     Для MATLAB стандартный тип по умолчанию – double. 

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

     >> a=eye(100);

     >> b=sparse(eye(100));

     >> whos

       Name      Size           Bytes  Class

       a       100x100          80000  double array

       b       100x100           1604  sparse array

     Grand total is 10100 elements using 81604 bytes 
 
 

     Массивы ячеек

     Числовые  массивы состоят из элементов  одного типа. В массивах ячеек каждый элемент (ячейка) может быть любого типа. При задании используются фигурные скобки.

     >> q={1 2 3}

     q =

        [1]    [2]    [3]

     >> whos q

       Name      Size           Bytes  Class

       q         1x3              300  cell array

     Grand total is 6 elements using 300 bytes 

     Каждый  элемент массива ячеек q является матрицей. Доступ к элементам массива ячеек также через фигурные скобки.

     >> w{1,1}='Text';

     >> w{1,2}=3;

     >> w{1,3}=eye(2);

     >> w{1,4}=1+i;

     >> w

     w =

         'Text'    [3]    [2x2 double]    [1.0000+ 1.0000i]

 

      Скрипты и функции

     Скрипты – цепочки команд MATLAB, сохраненные в текстовый файл с расширением m, так называемый m-файл.

     Особенности скриптов

    • работают только с переменными рабочего пространства;
    • могут обращаться к любым стандартным и нестандартным функциям;
    • несколько скриптов могут работать последовательно друг за другом, передавая данные следующему скрипту через общее рабочее пространство или запоминая промежуточные результаты в файлах;
    • в скриптах отсутствуют локальные переменные.

Информация о работе Лекции по Matlab