Читайте также:
|
|
4. find – нахождение ненулевых элементов матрицы. При обращении с одним выходным аргументом функция возвращает индекс, при обращении с двумя выходным аргументами – вектор строк и столбцов ненулевых элементов:
Также данную функцию можно использовать для нахождения элементов, удовлетворяющих определенному критерию, например, поиск всех положительных элементов:
C=randn(3)
C =
-0.3034 0.8884 -0.8095
0.2939 -1.1471 -2.9443
-0.7873 -1.0689 1.4384
[r,c]=find(C>0)
r =
c =
В данном примере r содержит вектор строк, а c содержит вектор столбцов положительных элементов.
ind=find(C>0)
ind =
Вектор ind содержит индексы положительных элементов. Для выделения искомых элементов вызывается массив с индексами положительных элементов:
C(ind)
ans =
0.2939
0.8884
1.4384
Пример 2. Поиск элементов массива C, попадающих в диапазон [-1, 0]
C(find(C>=-1 & C<=0))
ans =
-0.3034
-0.7873
-0.8095
5. sort – сортировка элементов массива:
>> sort(A)
ans =
-2.2588 0.8622 1.8339
>> sort(B)
ans =
-1.3077 0.3426 -1.3499
-0.4336 2.7694 0.7254
0.3188 3.5784 3.0349
По умолчанию сортировка происходит в порядке возрастания. Для сортировки в порядке убывания во втором аргументе задаются порядок сортировки
>> sort(A,'descend')
ans =
1.8339 0.8622 -2.2588
6. Другие функции работы с матрицами и векторами.
size – размер матрицы,
numel – число элементов матрицы,
prod – произведение элементов матрицы,
magic – создание "магического квадрата",
linspace – генерация вектора, значения элементов которого изменяются с постоянным шагом,
ones – создание массивов, состоящих из единиц,
zeros – создание массивов, состоящих из нулей, использование аналогично ones,
diag – выделение диагонали и конструирование диагональной матрицы:
• А = diag (а) — создание диагональной матрицы А, на диагонали которой стоят элементы вектора а.
• А = diag (а, к) — создание диагональной матрицы А, на побочной к-ой диагонали которой стоят элементы вектора а.
• а = diag (А) — выделение диагонали матрицы А В вектор а.
fliplr – перестановка столбцов матрицы слева направо, возвращает измененную матрицу.
tril – выделение нижнего треугольника из матрицы:
• L = tril (А) – в матрицу L тех же размеров, что и А, заносятся элементы нижнего треугольника А c диагональю.
• L = tril (А, к) – в матрицу L тех же размеров, что и А, заносятся элементы, находящиеся ниже к-ой поддиагонали и на ней (нумерация поддиагоналей такая же, как и в diag).
• triu — выделение верхнего треугольника из матрицы (аналогично tril).
Задание 1. Самостоятельно изучите и приведите примеры вызова всех функций работы с матрицами и векторами из пункта 6.
Задание 2. Заполните три вектора из 1000 элементов следующим образом:
· первый вектор – нормально распределенные случайные числа,
· второй вектор – равномерно распределенные случайные числа в диапазоне от 0 до 1,
· третий вектор – равномерно распределенные случайные числа в диапазоне от -3 до 5.
Постройте гистограммы для каждого вектора. Сделайте вывод о свойствах равномерно и нормально распределенных случайных числах (диапазон изменения, равномерность и т.д.).
Найдите максимальный и минимальный элементы, вычислите сумму и среднее арифметическое значение каждого вектора.
Отсортируйте каждый вектор в порядке возрастания и убывания.
Для третьего вектора найдите число отрицательных элементов и сумму элементов, абсолютное значение которых меньше единицы.
Заполнение массива по строкам может быть реализовано несколькими способами. Рассмотрим пример.
Пример 3. Заполнить массив следующим образом: первая строка должна содержать нули, вторая строка единицы.
N=5; % размер массива
r=zeros(1,N); % первая строка
l=ones(1,N); % вторая строка
% первый способ
C=[r;l];
% второй способ
D(1,:)=r;
D(2,:)=l;
Результат работы программы:
>> C
C =
0 0 0 0 0
1 1 1 1 1
>> D
D =
0 0 0 0 0
1 1 1 1 1
Обращение ко второму столбцу:
>> r=C(:,2)
r =
Задание 3. Создайте массив размерностью [4, n], где n = mod(NN/10)+20 (NN – номер варианта).
Строки массива должны содержать:
1-я нормально распределенные случайные числа;
2-я равномерно распределенные на отрезке [0; n] случайные числа;
3-я отсортированные в порядке возрастания числа первой строки;
4-я отсортированные в порядке убывания числа второй строки.
В получившемся массиве выделить столбец с номером NN mod 10+5. Для данного столбца, состоящего из четырех элементов, найти значение согласно варианту (табл. 1).
Табл. 1. К заданию 3.
NN mod 8 | задание |
среднее арифметическое квадратов элементов | |
среднее арифметическое абсолютных значений элементов | |
сумма квадратов элементов | |
сумма абсолютных значений элементов | |
произведение квадратов элементов | |
максимум абсолютных значений элементов | |
минимум квадратов элементов | |
произведение абсолютных значений элементов |
Дата добавления: 2014-12-15; просмотров: 60 | Поможем написать вашу работу | Нарушение авторских прав |