"MATLAB 7 (Наиболее полное руководство в подлиннике)" - читать интересную книгу автора (Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н.)

» 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)]
Глава 2. Работа с массивами
59
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,- S] |
» Р ¦ prod(z)
Р = 720 '
Зная об этой функции, несложно догадаться, как просто найти среднее геометрическое элементов вектора г.
» gm = prod(z)A(l/length(z}) 2.9938
60
Часть I. Основы работы в MATLAB
Функция sum предназначена для суммирования элементов вектора. Попробуйте самостоятельно вычислить среднее арифметическое элементов вектора г. Проверьте результат, вычислив среднее арифметическое, используя
встроенную функцию mean. Вот что должно получиться:
¦ » sum(z)/length(z)
ans =
3.5000
» mean(z)
ans =. 3.5O0CJ'
Для нахождения минимума и максимума из элементов вектора служат встроенные функции min и max:
» М = max(z)
м =
6
» m = min(z)
m => 1
При обращении к функции min с двумя векторами в качестве входных аргументов получится вектор, каждый элемент которого есть минимум из двух элементов исходных векторов с одинаковыми номерами,
» р = [3 12 8]; » s = [4 10 7] ; » minip, s) ans =
3 10 7 Часто необходимо знать не только значение минимального или максимального элемента в массиве, но и его индекс {порядковый номер). Вы уже видели, что интерфейс функций MATLAB достаточно универсален — большинство из них допускают обращение к ним с переменным числом входных и выходных аргументов.
Вызовите функцию min с двумя выходными аргументами:
» [тп, к] и min(z) m -
1 к =
3
Глава 2. Работа с массивами_______________________________________________61
В результате переменной m будет присвоено значение минимального элемента массива z, а номер минимального элемента занесен в переменную к.
Как же узнать, как именно можно вызывать функцию. Для быстрого получения подсказки следует набрать в командной строке help и через пробел имя функции. MATLAB выведет в командное окно всевозможные способы обращения к функции с дополнительными пояснениями. Аналогичные сведения можно найти в интерактивной справочной системе, которой вы уже пользовались при чтении главы 1. Если известно имя функции, то проще всего воспользоваться индексным поиском (вкладка Index в левой части окна справочной системы MATLAB). В строке ввода Search index for: следует набрать имя функции, например, min, затем в левом окне выбрать раздел MATLAB и ознакомиться с содержимым правого окна. Информация обо всех функциях MATLAB для работы с векторными и матричными данными содержится в пункте Arrays and Matrices подраздела Mathematics раздела Functions — Categorical List (вкладка Contents).
В число основных функций для работы с векторами входит функция упорядочения вектора по возрастанию его элементов sort.
>> г = [9.4 -2.3 -5,2 7.1 0.8 1.3]? » R = sort(r) В = -5.2000 -2.3000 0.Э000 1.3000 "7.1000 9.4000
Попробуйте упорядочить вектор по убыванию, используя эту же функцию sort. Правильный ответ:
» R1 = -sort(-г)