8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 21 22 23 24 25 26 27 ... 365

Из элементов массива можно формировать новые массивы, например:

» u = [v(3); v{2); v(l)] □ =

7.4000

555.0000

1.3000

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

» ind =[4 2 5]; » w = v(ind) w =

6.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 000009.8000

Присваивание w(2:6) = о эквивалентно последовательности команд 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

Вместо w(5:7) можно написать w(5:end). Такая запись означает, что берутся элементы, начиная с пятого и заканчивая последним. Если же ввести просто w (end), то получим последний элемент массива:

» w(end) ans 9.8000

Еще один способ индексирования — логическое индексирование — описан в разд. "Логическое индексирование" данной главы.

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

» gm = (и(1)*и(2)*и(3))Л(1/3) gm = 17.4779

Конечно, этот способ не очень удобен для длинных массивов. Для того чтобы найти среднее геометрическое, необходимо набрать в формуле все элементы массива. В MATLAB существует достаточно много специальных функций, облегчающих подобные вычисления.

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

Перемножение элементов вектор-столбца или вектор-строки осуществляется при помощи функции prod:

» z = [3,- 2; 1; 4; 6; 5] ; » р = prod(z) Р =

720

Зная об этой функции, несложно догадаться, как просто найти среднее геометрическое элементов вектора г.

» gm = prod(z)(l/length(z)) crm — 2.9938


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

» sum(z)/length(z) ans =

3.5000 >> mean(z) ans =

3.5O00

Для нахождения минимума и максимума из элементов вектора служат встроенные функции min и max:

» М = max (г)

м =

б

» m = min(z) m = 1

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

» р = [3 12 8] ; » s = [4 10 7] ; » min(p, s) ans = 3 10 7

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

Вызовите функцию min с двумя выходными аргументами:

>> [m, k] - min(z)



0 ... 21 22 23 24 25 26 27 ... 365