- •1. Цель работы
- •2. Краткие сведения о пакете matlab
- •2.1. Рабочая среда пакета MatLab
- •2.2. Арифметические вычисления
- •2.2.1. Простейшие вычисления
- •2.2.2. Форматы вывода результата вычислений
- •2.3. Использование элементарных функций
- •2.4. Работа с комплексными числами
- •3. Простейшие вычисления в пакете MatLab с использованием переменных и векторов
- •3.1. Использование переменных в пакете MatLab
- •3.2. Сохранение рабочей среды
- •3.3. Просмотр переменных
- •3.4. Работа с массивами
- •3.4.1. Ввод, сложение и вычитание векторов
- •3.4.2. Работа с элементами векторов
- •3.4.3. Применение функций обработки данных к векторам
- •4. Индивидуальные задания
- •5. Содержание отчета
3.4.2. Работа с элементами векторов
Доступ к элементам вектор-столбца или вектор-строки осуществляется при помощи индекса, заключаемого в круглые скобки после имени массива, в котором хранится вектор. Если среди переменных рабочей среды есть массив v, определенный вектор-строкой
» v = [1.3 3.6 7.4 8.2 0.9];
то для вывода, например его четвертого элемента, используется индексация:
» v(4)
ans =
8.2000
Появление элемента массива в левой части оператора присваивания приводит к изменению в массиве
» v(2) = 555
v =
1.3000 555.0000 7.4000 8.2000 0.9000
Из элементов массива можно формировать новые массивы, например
» u = [v(3); v(2); v(1)]
u =
7.4000
555.0000
1.3000
Для помещения определенных элементов вектора в другой вектор в заданном порядке служит индексация при помощи вектора. Запись в массив w четвертого, второго и пятого элементов v производится следующим образом:
» ind = [4 2 5];
» w = v(ind)
w =
8.2000 555.0000 0.9000
MatLab предоставляет удобный способ обращения к блокам последовательно расположенных элементов вектор-столбца или вектор-строки. Для этого служит индексация при помощи знака двоеточия. Предположим, что в массиве w, соответствующем вектор-строке из семи элементов, требуется заменить нулями элементы со второго по шестой. Индексация при помощи двоеточия позволяет просто и наглядно решить поставленную задачу:
» w = [0.1 2.9 3.3 5.1 2.6 7.1 9.8];
» w(2:6) = 0;
» w
w =
0.1000 0 0 0 0 0 9.8000
Присваивание w(2:6) = 0 эквивалентно последовательности команд
w(2) = 0; w(3)=0; w(4)=0; w(5)=0; w(6)=0.
Индексация при помощи двоеточия оказывается удобной при выделении части из большого объема данных в новый массив:
» w - [0.1 2.9 3.3 5.1 2.6 7.1 9.8];
» wl = w(3:5)
wl =
3.3000 5.1000 2.6000
Составьте массив w2, содержащий элементы w кроме четвертого. В этом случае удобно использовать двоеточие и сцепление строк:
» w2 = [w(l:3) w(5:7)]
w2 =
0.1000 2.9000 3.3000 2.6000 7.1000 9.8000
Элементы массива могут входить в выражения. Нахождение, например среднего геометрического из элементов массива u, можно выполнить следующим образом:
» gm = (u(l)*u(2)*u(3))^(l/3)
gm = 17.4779
Конечно, этот способ не очень удобен для длинных массивов. Для того чтобы найти среднее геометрическое, необходимо набрать в формуле все элементы массива. В MatLab существует достаточно много специальных функций, облегчающих подобные вычисления.
3.4.3. Применение функций обработки данных к векторам
Перемножение элементов вектора-столбца или вектора-строки осуществляется при помощи функции prod:
» z = [3; 2; 1; 4; 6; 5];
» р = prod(z)
p = 720
Функция sum предназначена для суммирования элементов вектора. С ее помощью нетрудно вычислить среднее арифметическое элементов вектора z:
» sum(z)/length(z)
ans =
3.5000
В MatLab имеется и специальная функция mean для вычисления среднего арифметического:
» mean(z)
ans =
3.5000
Для определения минимального и максимального из элементов вектора служат встроенные функции min и max:
» m1 = max(z)
m1 =
6
» m2 = min(z)
m2 =
1
Часто необходимо знать не только значение минимального или максимального элемента в массиве, но и его индекс (порядковый номер). В этом случае встроенные функции min и max необходимо использовать с двумя выходными аргументами, например
» [m, k] = min(z)
m =
1
k =
3
В результате переменной m будет присвоено значение минимального элемента массива z, а номер минимального элемента занесен в переменную k.
Для получения информации о различных способах использования функций следует набрать в командной строке help и имя функции. MatLab выведет в командное окно всевозможные способы обращения к функции с дополнительными пояснениями.
В число основных функций для работы с векторами входит функция упорядочения вектора по возрастанию его элементов sort.
» r = [9.4 -2.3 -5.2 7.1 0.8 1.3];
» R = sort(r)
R =
-5.2000 -2.3000 0.8000 1.3000 7.1000 9.4000
Можно упорядочить вектор по убыванию, используя эту же функцию sort:
» R1 = -sort(-r)
R1 =
9.4000 7.1000 1.3000 0.8000 -2.3000 -5.2000
Упорядочение элементов в порядке возрастания их модулей производится с привлечением функции abs:
» R2 = sort(abs(r))
R2 =
0.8000 1.3000 2.3000 5.2000 7.1000 9.4000
Вызов sort с двумя выходными аргументами приводит к образованию массива индексов соответствия элементов упорядоченного и исходного массивов:
» [rs, ind] = sort(r)
rs =
-5.2000 -2.3000 0.8000 1.3000 7.1000 9.4000
ind =
3 2 5 6 4 1