Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Применение функций обработки данных к матрицам




Функция sum вычисляет сумму элементов вектора. С другой стороны, векторы в MATLAB, так же как и матрицы, хранятся в двумерных массивах. Возникает вопрос: что же будет, если в качестве аргумента sum использовать не вектор, а матрицу. Оказывается, MATLAB вычислит вектор-строку, длина, которой равна числу столбцов матрицы, а каждый элемент является суммой соответствующего столбца матрицы, например:

>> M=[1 -2 -4; 3 -6 4; 2 -2 0];

>> s=sum(M)

s =

6 -10 0

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

>> s2=sum(M,2)

s2 =

-5

Заметим, что sum(M) и sum(M,1) приводят к одинаковым результатам. Итак, функция sum суммирует по строкам, или по столбцам, выдавая результат в виде вектора или вектор-строки. Аналогично работает и функция prod:

>> p=prod(M)

p =

6 -24 0

>> p2=prod(M,2)

p2 =

-72

Функция sort упорядочивает элементы каждого из столбцов матрицы в порядке возрастания. Вызов sort со вторым аргументом, равным двум, приводит к упорядочению элементов строк:

>> MC=sort(M) >> MR=sort(M,2)

MC = MR =

1 -6 -4 -4 -2 1

2 -2 0 -6 3 4

3 -2 4 -2 0 2

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

>> [MC, Ind]=sort(M)

MC =

1 -6 -4

2 -2 0

3 -2 4

Ind =

1 2 1

3 1 3

2 3 2

Функции max и min вычисляют вектор-строку, содержащую максимальные или минимальные элементы в соответствующих столбцах матрицы:

>> mx=max(M) >> mn=min(M)

mx = mn =

3 -2 4 1 -6 -4

Для того чтобы узнать не только значения максимальных и минимальных элементов, но и их номера в столбцах, следует вызвать max или min так:

>> [mx,k]=max(M) >> [mn,n]=min(M)

mx = mn =

3 -2 4 1 -6 -4

k = n =

2 1 2 1 2 1

Обратите внимание, что во втором столбце матрицы M два равных максимальных элемента – первый и третий. Всегда возвращается номер первого максимального элемента. Аналогично и с минимальным элементом.

Рассмотрим функцию rot90, поворачивающую массив на 90 градусов против часовой стрелки. Например:

>> P=[4 3 -1; 2 0 7]

P =

4 3 -1

2 0 7

>> q1=rot90(P)

q1 =

-1 7

3 0

4 2

 

Задания на векторы

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

1. Переставить элементы вектора в обратном порядке, используя индексацию подходящим вектором, и записать результат в новый вектор.

2. Выделить в новый вектор элементы вектора с четными номерами.

3. Найти сумму только положительных элементов вектора.

4. Заменить элементы вектора, отличающиеся от среднего геометрического его элементов более чем на 10%, на среднее геометрическое.

5. Заменить все минимальные элементы вектора максимальным значением его элементов.

6. Найти число положительных и отрицательных элементов вектора.

 

Задания на матрицы

1. Задана квадратная матрица

.

Элементы матрицы A обозначим . Требуется узнать и записать размер матрицы в переменную n (конечно он равен 3, но лучше использовать функцию для автоматического определения размера) и вычислить приведенные ниже величины (нормы матрицы):

.

2. При помощи встроенных функций для заполнения стандартных матриц, индексации двоеточием и, возможно, поворота, транспонирования получите следующие матрицы:

; ;

;

.

 

M-файлы

До этого мы рассматривали достаточно простые примеры, для выполнения которых требуется набрать несколько команд в командной строке. Для более сложных задач число команд возрастает, и работа в командной строке становится непродуктивной. Использование истории команд незначительно повышает производительность работы. Эффективное решение состоит в оформлении собственных алгоритмов в виде программ (M-файлов), которые можно запустить из рабочей среды или из редактора. Встроенный в MATLAB редактор M-файлов позволяет не только набирать текст программы и запускать ее целиком или частями, но и отлаживать алгоритм.

 





Поделиться с друзьями:


Дата добавления: 2017-02-25; Мы поможем в написании ваших работ!; просмотров: 666 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Самообман может довести до саморазрушения. © Неизвестно
==> читать все изречения...

2487 - | 2329 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.