Раздел: Документация
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
|