- •Введение
- •Лабораторная работа ип1 Знакомство с Matlab
- •1. Рабочая среда Matlab
- •2. Данные Matlab
- •Типы данных
- •Числовые константы
- •Символьные константы
- •Переменные
- •3. Выражения
- •3.1. Арифметические выражения
- •3.2. Логические выражения
- •3.3. Порядок вычисления выражений
- •4. Сообщения об ошибках и исправление ошибок
- •5. Завершение вычислений
- •6. Завершение работы с системой
- •7. Резюме
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •Лабораторная работа ип2 работа с матрицами в matlab
- •1. Общие сведения
- •2. Одномерные массивы – векторы
- •3. Двумерные массивы – матрицы
- •4. Использование двоеточия
- •4.1. Автозаполнение
- •4.2. Индексация
- •5. Поэлементные и матричные операции
- •6. Стандартные функции для работы с матрицами
- •7. Логическое индексирование
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •10. Упражнения
- •2. Диалоговый ввод/вывод
- •3. Управление последовательностью исполнения операторов
- •3.1. Оператор условия if
- •3.2. Оператор переключения
- •3.3. Оператор цикла с определенным числом повторений
- •3.4. Оператор цикла с неопределенным числом повторений
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип4 визуализация данных в matlab
- •1. Общие сведения
- •2. Построение таблицы значений функции
- •3. Двумерная графика
- •3.1. Общие правила построения графиков
- •3.2. Оформление графиков
- •3.3. Построение графиков
- •3.4. Управление свойствами графиков
- •4. Трехмерная графика
- •4.1. Общие принципы построения трехмерных графиков
- •4.2. Построение трехмерных графиков
- •4.3. Управление свойствами трехмерных графиков
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип5 файл-функции
- •2. Описание m-функции
- •3. Обращение к m-функции
- •4. Параметры-функции
- •5. Разновидности m-функций
- •5.1. Подфункции
- •5.2. Вложенные функции
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •2. Аппроксимация
- •2.1. Моделирование полиномом по методу
- •2.2. Аппроксимация произвольной функцией
- •3. Интерполяция
- •3.1. Кусочная интерполяция
- •3.2. Кубические сплайны
- •3.3. Интерполяция произвольной нелинейной функцией
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип7 Вычисление функций разложением в ряд
- •1. Общие сведения
- •2. Индивидуальное задание
- •Лабораторная работа ип8 Решение нелинейных уравнений в среде Matlab
- •1. Общие сведения
- •2. Поиск корней полиномов
- •3. Решение одного нелинейного уравнения
- •4. Решение систем нелинейных уравнений
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип9 обмен данными с текстовым файлом
- •1. Общие сведения
- •2. Открытие файла
- •3. Запись в текстовый файл
- •3.1. Запись строковых значений
- •3.2. Запись числовых значений
- •4. Чтение из текстового файла
- •4.1. Последовательное чтение строк
- •4.2. Последовательное чтение нескольких символов
- •4.3. Чтение чисел из текстового файла
- •4.4. Альтернативный доступ к текстовому файлу
- •5. Закрытие файла
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •Заключение
- •Список рекомендуемой литературы
- •Программирование в matlab
- •428015 Чебоксары, Московский просп., 15
6. Стандартные функции для работы с матрицами
Уже было отмечено, что для работы с векторами и матрицами можно использовать функции, ориентированные на работу со скалярами. Эти функции применяются поэлементно к каждому компоненту матрицы или вектора. Кроме этого, для матриц и векторов определены и специальные функции. Наиболее часто используемые функции приведены в табл. 2.1. Для примеров, используемых в таблице, в Workspace определены следующие переменные:
квадратная матрица а
>> a=[1 2 3; 5 -2 8; -4 0 -6]
a =
1 2 3
5 -2 8
-4 0 -6
вектор-строка b
>> b=[10 55 -30 40]
b =
10 55 -30 40
вектор-столбец с
>> c=[20; -3; 67]
c =
20
-3
67
Функции, указанные в табл. 2.1, будучи примененными к матрице, работают с отдельными ее столбцами.
Таблица 2.1
Функция |
Назначение |
Пример использования |
Результат |
1 |
2 |
3 |
4 |
cond(a) |
Вычисление числа обусловленности матрицы |
>> cond(a); |
25.4697 |
det(a) |
Вычисление определителя квадратной матрицы |
>> det(a); |
-16 |
fliplr(a) |
Перебрасывает элементы слева направо (переворачивает по горизонтали) |
>> fliplr(a) |
3 2 1 8 -2 5 -6 0 -4 |
flipud(a) |
Перебрасывает элементы снизу вверх (переворачивает по вертикали) |
>> flipud(a) |
-4 0 -6 5 -2 8 1 2 3 |
inv(a) |
Обращение квадратной матрицы |
>> inv(a); |
-0.7500 -0.7500 -1.3750 0.1250 -0.3750 -0.4375 0.5000 0.5000 0.7500 |
length(a) |
Определение длины вектора |
>> length(a); >> length(a(:)); >> length(b); >> length(c); |
3 9 4 3 |
max(a) |
Определение максимального элемента |
>> max(a); >> max(b); >> max(c); |
5 2 8 55 67 |
Окончание табл. 2.1
1 |
2 |
3 |
4 |
||
min(a) |
Определение минимального элемента |
>> min(a); >> min(b); >> min(c); |
-4 -2 -6 -30 -3 |
||
mean(a) |
Вычисление среднего |
>> mean(a); >> mean(b); |
0.6667 0 1.6667 18.7500 |
||
norm(a) |
Вычисление нормы (по умолчанию вычисляется квадратичная норма) |
>> norm(a); >> norm(a,1); >> norm(b); >> norm(b,1); |
12.3099 17 75 135 |
||
ones(m,n) |
Генерация матрицы из единиц |
>> ones(2,3);
>> ones(1,4); |
1 1 1 1 1 1 1 1 1 1 |
||
prod(a) |
Вычисление произведения элементов |
>> prod(a); >> prod(b); |
-20 0 -144 -660000 |
||
size(a) |
Размеры матрицы |
>> size(a); >> size(b); >> size(c); |
3 3 1 4 3 1 |
||
sort(a) |
Сортировка элементов |
>> sort(a);
>> sort(b);
>> sort(c); |
-4 -2 -6 1 0 3 5 2 8 -30 10 40 55
-3 20 67 |
||
sum(a) |
Сумма элементов |
>> sum(a); >> sum(b); >> sum(c); |
2 0 5 75 84 |
||
zeros(m,n) |
Генерация нулевой матрицы |
>> zeros(3,2);
|
0 0 0 0 0 0 |
Некоторые из функций работы с матрицами могут возвращать два выходных параметра. Например, max и min. Так, обращение
>> [maxval, indmax]=max(a)
maxval =
5 2 8
indmax =
2 1 2
вернет не только вектор из максимальных элементов столбцов матрицы, но и вектор их индексов в соответствующих столбцах. Для нашей матрицы максимальным в первом столбце является элемент со значением 5 и стоит он во второй строке.
Полный перечень функций, применяемых при работе с матрицами, и описание правил их применения можно вывести на экран следующими командами:
help matfun – матричные функции линейной алгебры;
help elmat – элементарные матрицы и функции манипуляции матрицами;
help datafun – функции анализа данных;
help sparfun – функции работы с разреженными матрицами.