2.2 Применение команд обработки данных к векторам и матрицам
Команда max(V) выдает значение максимального по значению элемента вектора V. Аналогично, команда min(V) извлекает минимальный элемент вектора V.
Команды mean(V) и std(V) выдают, соответственно, среднее значение и среднеквадратическое отклонение вектора V.
Команда сортировки sort(V) формирует вектор, элементы которого распределены в порядке возрастания их значений.
Команда sum(V) возвращает сумму элементов вектора V.
Команда prod(V) выдает произведение всех элементов вектора V.
Команда cumsum(V) формирует вектор того же типа и размера, любой элемент которого является суммой всех предыдущих элементов вектора V (вектор кумулятивной суммы).
Команда cumprod(V) создает вектор, элементы которого являются произведением всех предыдущих элементов вектора V.
Команда diff(V) выдает вектор, имеющий размер на единицу меньший, чем размер вектора V, элементами которого является разность между соседними элементами вектора V.
Применение описанных команд проиллюстрировано ниже на одном и том же векторе V:
>> V=[1 .1 .5 .1 .1 .4]
V =
1.0000 0.1000 0.5000 0.1000 0.1000 0.4000
>> disp(length(V))
6
>> disp(max(V))
1
>> disp(min(V))
0.1000
>> disp(mean(V))
0.3667
>> disp(std(V))
0.3559
>> disp(sort(V))
0.1000 0.1000 0.1000 0.4000 0.5000 1.0000
>> disp(sum(V))
2.2000
>> disp(prod(V))
2.0000e-004
>> disp(cumsum(V))
1.0000 1.1000 1.6000 1.7000 1.8000 2.2000
>> disp(cumprod(V))
1.0000 0.1000 0.0500 0.0050 0.0005 0.0002
>> disp(diff(V))
-0.9000 0.4000 -0.4000 0 0.3000
Часто необходимо знать не только значение минимального или максимального элемента в массиве, но и его индекс (порядковый номер). Если указать второй выходной параметр, то можно получить дополнительную информацию о первом индексе элемента, значение которого является максимальным или минимальным:
>> [M,n]=max(V)
M =
1
n =
1
>> [M,n]=min(v)
M =
0.1000
n =
2
Для того, чтобы упорядочить вектор V по убыванию, также используем команду sort:
>> R=-sort(-V)
R =
1.0000 0.5000 0.4000 0.1000 0.1000 0.1000
Вызов sort с двумя выходными аргументами приводит к образованию массива индексов соответствия элементов упорядоченного и исходного массивов:
>> [R,ind]=sort(V)
R =
0.1000 0.1000 0.1000 0.4000 0.5000 1.0000
ind =
2 4 5 6 3 1
Применение команд обработки данных к некоторым последовательно расположенным элементам вектора не представляет труда. Например, произведение элементов вектора V со второго по шестой вычисляется так:
>> P=prod(V(2:6))
P =
2.0000e-004
Сумма элементов вектора V с четными индексами находится следующим образом:
>> ind=2:2:length(V);
>> s=sum(V(ind))
s =
0.6000
Если вектор V состоит из комплексных чисел, команды max(V) и min(V) выдают максимальный и минимальный по модулю элемент. Команда sort упорядочивает комплексный вектор по модулю, а компоненты с равными модулями располагаются в порядке возрастания фаз.
Команды max, min, mean, std, sort, sum, prod, cumsum, cumprod, diff могут применятся к матрицам. Если M матрица, то команда max(M) извлекает максимальный элемент каждого столбца:
>> A=[7 1 -1 ;3 4 -4; 2 3 4]
A =
7 1 -1
3 4 -4
2 3 4
>> m=max(A)
m =
7 4 4
Если указать два выходных параметра, то получим номера строк c максимальными элементами:
>> [m,n]=max(A)
m =
7 4 4
n =
1 2 3
Если в качестве второго входного параметра sum указать 2, то cуммирование произойдет по строкам. Например:
>> M=[1 2;3 4; 5 6]
M =
1 2
3 4
5 6
>> disp(sum(M,2))
3
7
11
Для вычисления суммы всех элементов матрицы требуется дважды применить sum:
>> disp(sum(sum(M)))
21
Пример:
Для матрицы
A = .
размера 6×6 вычислить величину
.
Решение:
>> A=[1 .5 -1 1 .4 1
1 -5 -2 1 1 -2
-2 .5 -1 1 -1 2
-4 .3 1 .2 .1 -3
-2 1 1 .4 1 -1
1 -2 1 1 .7 1];
>> p=prod(sum(A.^A,2))
p =
2.2183e+003
Подробнее о командах обработки данных можно узнать в разделе datafun справочной системы MATLAB.
- Основы работы и программирования, компьютерная математика Учебный курс
- Isbn ооо «Харвест», 2008
- Предисловие
- Введение
- Глава 1 знакомство с matlab и простейшие вычисления
- 1.1. Рабочая средаMatlab
- 1.2. Арифметические вычисления
- 1.3. Вещественные числа
- 1.4. Форматы вывода результата вычислений
- 1.5 Комплексные числа
- 1.6 Векторы и матрицы
- 1.7 Встроенные функции. Функции, задаваемые пользователем
- 1.8 Сообщения об ошибках и их исправление
- 1.9 Просмотр и сохранение переменных
- 1.10 Матричные и поэлементные операции над векторами и матрицами
- 1.11 Решение систем линейных уравнений
- Вопросы для самопроверки
- Глава 2 работа с массивами
- 2.1 Создание векторов и матриц
- 2.2 Применение команд обработки данных к векторам и матрицам
- 2.3 Создание специальных матриц
- 2.4 Создание новых массивов на основе существующих
- 2.5 Вычисление собственных значений и собственных векторов. Решение типовых задач линейной алгебры
- Вопросы для самопроверки
- Глава 3 м-файлы
- 3.1 Файл-программы
- 3.2 Файл-функции
- Вопросы для самопроверки
- Глава 4 программирование
- 4.1 Операторы отношения и логические операторы
- 4.2 Операторы цикла
- 4.3 Операторы ветвления
- 4.4 Оператор переключения switch
- 4.5 Оператор прерывания цикла break
- 4.6 Пример сравнения быстродействия матричных и скалярных операций
- Вопросы для самопроверки
- Глава 5 высокоуровневая графика
- 5.1 2D графика
- 5.1.1 Графики в линейном масштабе
- 5.2 Специальные виды 2d - графиков
- 5.2.1 Представление функции в виде дискретных отсчетов
- 5.2.2 Лестничные графики
- 5.2.3 Графики с указанием погрешности
- 5.2.4 Графики в логарифмическом и полулогарифмическом масштабах
- 5.2.5 Графики параметрических функций
- 5.3 3D графика
- 5.3.1 Линейчатые поверхности
- 5.3.2 Каркасные поверхности
- 5.3.3 Контурные графики
- 5.3.4 Сплошная освещенная поверхность
- 5.4 Оформление, экспорт и анимация
- 5.4.1 Оформление графиков
- 5.4.2 Сохранение и экспорт графиков
- 5.4.3 Анимация
- Вопросы для самопроверки
- Глава 6 прикладная численная математика
- 6.1 Операции с полиномами
- 6.2 Решение уравнений и их систем
- 6.3 Минимизация функции одной переменной
- 6.4 Минимизация функции нескольких переменных
- 6.5 Вычисление определенных интегралов
- 6.6 Решение дифференциальных уравнений
- 6.7 Аппроксимация и интерполяция данных
- 6.8 Интерполяция двумерных и многомерных данных
- Вопросы для самопроверки
- Глава 7 символьные вычисления
- 7.1 Символьные переменные, константы и выражения
- 7.2 Вычисления с использованием арифметики произвольной точности
- 7.3 Команды упрощения выражений – simplify, simple
- 7.4 Команда расширения выражений – expand
- 7.5 Разложение выражений на простые множители – команда factor
- 7.6 Приведение подобных членов – команда collect
- 7.7 Обеспечение подстановок – команда subs
- 7.8 Вычисление пределов – команда limit
- 7.9 Вычисление производных – команда diff
- 7.10 Вычисление интегралов – команда int
- 7.11 Разложение в ряд Тейлора – команда taylor
- 7.12 Вычисление суммы ряда – команда symsum
- 7.13 Решение уравнений и их систем – команда solve
- 7.14 Решение дифференциальных уравнений – команда dsolve
- 7.15 Прямое и обратное преобразования Лапласа – команды laplace,ilaplace
- 7.16 Графики символьных функций – команды ezplot, ezpolar
- 7.17 Прямой доступ к ядру системы Maple – командаmaple
- 7.18 Разложение рациональной дроби на сумму простейших дробей
- 7.19 Интерполяционный полином Лагранжа
- 7.20 Решение неравенств и систем неравенств
- 7.21 Разложение в ряд Тейлора функции нескольких переменных
- 7.22 Решение дифференциальных уравнений с помощью степенных рядов
- 7.23 Решение тригонометрических уравнений
- Вопросы для самопроверки
- Приложения Приложение 1. Справочная система matlab
- Приложение 2. Знакомство с пакетами расширения системыMatlab
- Приложение 3. Задания для самостоятельной работы
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Литература