Примеры использования
При обработке векторов удобно использовать возможность выборки из вектора значений, отвечающим некоторому условию.
Например,
получить все отрицательные значения вектора.
>> X=[3 -4 5 -6 3 9 -5];
>> Y = X(X<0) % Рез-т – массив, в скобках – условие отбора эл-тов
Y =
-4 -6 -5
Сформировать массив иззначений вектора из диапазона n, m.
>>X(X>=n && X <=m)
А теперь посмотрим, как применить такую конструкцию для нахождения среднего и суммы:
>> sum(X(X<0))
ans =
-15
Если записать
>> sum(X<0)
будет найдено количество положительных значений в векторе
ans=
Для матрицы:
>> sum(А(А<6)) – суммы по столбцам эл-тов матрицы <6
>> sum(А<6) – количество эл-тов матрицы <6 в каждом столбце
>> sum(А<6, 2) – количество эл-тов матрицы <6 в каждой строке
>> N=[1 -2 -4;5 9 -1; 3 5 7]
N =
1 -2 -4
5 9 -1
3 5 7
>> sum(N<0) % Будет найдено количество отрицательных значений в каждом столбце
ans =
0 1 2
>> sum(N<0,2) % Будет найдено количество отрицательных значений в каждой строке
ans =
>> mean(X(X<0))
ans =
-5
Сумма элементов, не принадлежащих диапазону
>> sum(X(X<=n || X >=m))
Найти наибольшее значение среди элементов <8
>> max(X(X<8))
ans =
Для матрицы
>> В=[1 2 3; -4 8 -3; 9 -1 -2]
В =
1 2 3
-4 8 -3
9 -1 -2
Получить все элементы матрицы > p
>> p=6; В(В>p)
ans = % вектор значений в порядке следования по столбцам
Среднее значение всех положительных элементов матрицы
>> mean(В(В>0))
ans =
4.6000
Сумму элементов побочной диагонали
<<sum(diag(fliplr(В)))
Сумму элементов главной диагонали
<<sum(diag((В)))
Нормы матрицы
Сформируем матрицу заполнением случайными числами:
>> В=round(10*rand(4))-8*ones(4)
В =
1 -7 0 -6
2 -5 -6 -5
-3 0 1 -2
-7 -5 -5 -3
В математике норма матрицы может быть вычислена по разным формулам:
Найдем наибольшую сумму модулей элементов в столбцах матрицы
>> sum(abs(В)) % сумма модулей в столбцах
ans =
13 17 12 16
>> max_stolb=max(sum(abs(В)))
max_stolb =
Найдем наибольшую сумму модулей элементов в строках матрицы
>> sum(abs(В),2) % сумма модулей в строках
ans =
>>max_str=max(sum(abs(В),2))
max_str =
Вычислить значение суммы модулей элементов матрицыпо формуле
>> sum(abs(В)) %значение внутренней суммы
ans =
13 17 12 16
>> s1=sum(sum(abs(В))) или >>s1=sum(abs(В(:)))
s1 =
Вычислить:
Расчет евклидовой нормы подразумевает три действия: возведение каждого элемента в квадрат, суммирование и извлечение квадратной корня из общего результата
>> s=sqrt(sum(sum(abs(В).^2)))
s =
17.2627
Дата добавления: 2020-03-21; просмотров: 244;