<<sum(diag(fliplr(X)))
Сумму элементов главной диагонали
<<sum(diag((X)))
Нормы матрицы
Сформируем матрицу заполнением случайными числами:
>> X=round(10*rand(4))-8*ones(4)
X =
1 -7 0 -6
2 -5 -6 -5
-3 0 1 -2
-7 -5 -5 -3
В математике норма матрицы может быть вычислена по разным формулам:
Найдем наибольшую сумму модулей элементов в столбцах матрицы
>> sum(abs(X)) % сумма модулей в столбцах
ans =
13 17 12 16
>> max_stolb = max(sum(abs(X)))
max_stolb =
17
Найдем наибольшую сумму модулей элементов в строках матрицы
>> sum(abs(X),2) % сумма модулей в строках
ans =
14
18
6
20
>> max_str=max(sum(abs(X),2))
max_str =
20
Вычислить значение суммы модулей элементов матрицы по формуле
>> sum(abs(X)) %значение внутренней суммы
ans =
13 17 12 16
>> s1=sum(sum(abs(X))) или >>s1=sum(abs(X(:)))
s1 =
58
Вычислить:
Расчет евклидовой нормы подразумевает три действия: возведение каждого элемента в квадрат, суммирование и извлечение квадратной корня из общего результата
>> s=sqrt(sum(sum(abs(X).^2)))
s =
17.2627
Найти среднее арифметическое в каждом столбце
|
|
>> mean(X )
ans =
-1.7500 -4.2500 -2.5000 -4.0000
Среднее всех элементов матрицы:
>> mean(mean(X)) или mean(X(:))
ans =
-3.1250
Удалить максимальный элемент в векторе
[xmax,pmax]=max(X);
X(pmax)=[];
Вставить значение 100 в вектор после элемента с номером k=3
X=[3 5 8 55 4 9 1];
>> n=length(X);
>> k=3;
>> X(k+1:n+1)=X(k:n); или так X(k+2:n+1)=X(k+1:n);
>> X(k+1)=100;
>> X
X =
3 5 8 100 55 4 9 1
В матрице поменять местами столбцы с минимальным и максимальным элементами.
% нахождения номера столбца с минимальным значением
[m_min,jmin]=min(min(b));
% нахождения номера столбца с максимальным значением
[m_max,jmax]=max(max(b));
% перестановка столбцов
buf=b(:, jmin);
b(:, jmin)=b(:, jmax);
b(:, jmax)=buf;
Поменять местами 1 и 2-ю половины вектора
округление до ближайшего целого в сторону нуля, например, fix (1.8)=1
Если количество элементов четное:
>> M=[4 5 6 8 9 2]; n=6;
>> buf=M(1:n/2);
M(1:n/2)=M(n/2+1:n);
M(n/2+1:n)=buf;
M=
8 9 2 4 5 6
Если количество элементов нечетное:
>> X=[4 5 6 8 9 ]
X =
4 5 6 8 9
>> n=5;
>> buf=X(1:fix(n/2));
X(1:fix(n/2))=X(fix(n/2)+2:n);
X(fix(n/2)+2:n)=buf;
>> X
X =
8 9 6 4 5