
- •Простейшие вычисления в Matlab
- •Работа с массивами. Векторы-столбцы и векторы-строки
- •Работа с массивами
- •Двумерные массивы и матрицы
- •Блочные матрицы
- •Визуализация матрицы поэлементными операциями над ними
- •Графики, диаграммы и гистограммы
- •Программирование. Операторы цикла.
- •Программирование. Операторы ветвления. Исключительные ситуации
Блочные матрицы
Первое задание представлено на рисунке 24.
Рисунок 24 – Задание №5.1
Код задания представлен в листинге 20, а полученный результат на рисунке 25.
Листинг 20 – Код задания №5.1
A = [1 1;1 1];
B = [2 2;2 2];
C = [3 3;3 3];
D = [4 4;4 4];
K = [A B;C D];
disp(K)
S = [1 9;5 5];
a = [2;3];
b = [-4 5];
M = [S a;b 2.2];
disp(M);
K1 = K(1:2,3:4);
K2 = K(3:4,1:2);
disp(K1);
disp(K2);
m = M(3,:);
Рисунок 25 – Полученный ответ к заданию №5.1
Далее в построенной матрице K необходимо удалить первую строку и 3-й столбец. Код представлен в листинге 21, а полученный ответ на рисунке 26.
Листинг 21 – Код задания №5.2
A = [1 1;1 1];
B = [2 2;2 2];
C = [3 3;3 3];
D = [4 4;4 4];
K = [A B;C D];
disp(K);
K(1,:) = [];
K(:,3)= [];
disp(K)
Рисунок 26 – Полученный ответ к заданию №5.2
В следующем задании необходимо:
а) Заполните прямоугольную и квадратную матрицу нулями, единицами и случайными числами при помощи индексации и встроенных функций;
б) заполните вектор-строку семью случайными числами;
в) создайте диагональную матрицу, у которой все внедиагональные элементы равны нулю.
Код пункта а) представлен в листинге 22, а полученный результат на рисунке 27.
Листинг 22 – Код задания №5.3 (а)
A0(1:3,1:4) = 0;
disp(A0);
B0(1:3,1:3) = 0;
disp(B0);
A0 = zeros(3,4);
disp(A0);
B0 = zeros(3);
disp(B0);
A1(1:3,1:4) = 1;
disp(A1);
B1(1:3,1:3) = 1;
disp(B1);
A1 = ones(3:4);
disp(A1);
B1 = ones(3);
disp(B1);
A = rand(3,4);
disp(A);
B = rand(3);
disp(B);
A = randn(3,4);
disp(A);
B = randn(3);
disp(B);
Рисунок 27 – Полученный ответ к заданию №5.3 (а)
Код пунктов б) и в) представлен в листинге 23, результат на рисунке 28.
Листинг 23 – Код задания №5.3 (б,в)
r = rand(1,7);
disp(r)
d = [1;2;3;4];
D = diag(d);
disp(D)
Рисунок 27 – Полученный ответ к заданию №5.3 (б,в)
Последнее задание представлено на рисунке 28.
Рисунок 28 – Задание №5.4
Код задания представлен в листинге 24, а полученный результат на рисунке 29.
Листинг 24 – Код задания №5.4
M = [5*eye(5) 9*ones(5);4*ones(5) -2*eye(5)];
csvwrite('M.csv', M);
G = 7*eye(7)+diag(ones(1,6),1)+diag(ones(1,6),-1);
csvwrite('G.csv', G);
Рисунок 29 – Полученный ответ к заданию №5.4
В ходе решения последних задач я научился создавать и использовать блочные матрицы в программе Matlab.
Визуализация матрицы поэлементными операциями над ними
В первом задании необходимо матрице М:
а) вычислить сумму по столбцам и по строкам;
б) отсортировать элементы этой матрицы в порядке возрастания их столбцов и строк;
в) вычислить максимальные и минимальные элементы в соответствующих столбцах матрицы М и строках:
M
=
Код представлен в листинге 24, а конечный ответ на рисунке 30.
Листинг 24 – Код к заданию №6.1
M = [7 -1 -1;2 -4 0;9 -7 5];
s = sum(M);
disp(s);
s2 = sum(M, 2);
disp(s2);
MC = sort(M);
disp(MC);
MR = sort(M, 2);
disp(MR);
mx = max(M);
disp(mx);
mn = min(M);
disp(mn);
mxl = max(M, [], 2);
disp(mxl);
mnl = min(M, [], 2);
disp(mnl)
Рисунок 30 – Ответ к заданию №6.1
Последнее задание представлено на рисунке 31.
Рисунок 31 – Задание №6.2
Код задания представлен в листинге 25, а полученный результат на рисунке 32.
Листинг 25 – Код задания №6.2
A = round(10*rand(3))-2*ones(3);
disp(A)
p = max(sum(abs(A)));
r = sqrt(sum(sum(abs(A).^2)));
s = sum(sum(abs(A)));
disp(p);
disp(r);
disp(s);
Рисунок 32 – Полученный ответ к заданию №6.2
В ходе решения задач я углубил знания матрицы и работы с ними, выполнять поэлементные операции с ними.