12 KiB
Отчет по теме 1.
Тупиков Александр, А-02-24
п. 1-5: Подготовка к выполнению работы.
п. 6: Инициализация переменных.
Создана матрица А со случайными, нормально распределенными элементами, с 4 строками и 6 столбцами:
>> A=randn(4,6)
A =
0.1543 0.1981 -0.9889 -2.0098 -0.5292 -1.2796
-0.4077 0.9624 -0.7798 0.2491 -0.2644 -0.5665
-1.0301 -0.2595 0.1252 0.1622 -2.2617 1.9039
-0.8845 1.2288 -0.6661 0.2524 -0.4709 -0.7461
Создана матрица В 4х7 со случайными элементами, равномерно распределенными в диапазоне от 0 до 1:
>> B=rand(4,7)
B =
0.028926 0.404821 0.044407 0.500323 0.660809 0.682371 0.772185
0.842736 0.157225 0.928548 0.166813 0.222252 0.054478 0.026078
0.231970 0.309345 0.949115 0.465862 0.833514 0.253321 0.211782
0.440755 0.861170 0.511663 0.483208 0.310441 0.113771 0.513986
Создан вектор С с целыми числами от 4 до 27:
>> С=4:27
C =
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Создан вектор символов H:
>> H='This is a symbol vector'
H = This is a symbol vector
Создан вектор комплексных значений L:
>> L=[-2+23.1j, 3-5.6j]
L =
-2.0000 + 23.1000i 3.0000 - 5.6000i
п. 7: Выполнение операций с матрицами.
Преобразование вектора C в матрицу с 6 столбцами:
>> D=reshape(C,[],6)
D =
4 8 12 16 20 24
5 9 13 17 21 25
6 10 14 18 22 26
7 11 15 19 23 27
Выполнение транспонирования матрицы B и матричного перемножения B^T и A:
>> E=B'*A
E =
-0.9680 1.2982 -0.9503 0.3006 -0.9703 -0.4017
-1.0820 1.2094 -1.0578 -0.5070 -1.3610 -0.6606
-1.8020 1.2848 -0.9899 0.4250 -2.6566 0.8424
-0.8981 0.7325 -0.8883 -0.7665 -1.5900 -0.2083
-1.1218 0.5100 -0.9292 -1.0593 -2.4398 0.3839
-0.2785 0.2617 -0.7613 -1.2881 -1.0020 -0.5066
-0.5643 0.7547 -1.0998 -1.3814 -1.1366 -0.9831
Создана матрица путем "горизонтального" присоединения A к B:
>> F=[A,B]
F =
Columns 1 through 6:
0.154320 0.198115 -0.988889 -2.009849 -0.529192 -1.279576
-0.407734 0.962364 -0.779752 0.249061 -0.264398 -0.566537
-1.030096 -0.259486 0.125220 0.162152 -2.261683 1.903928
-0.884516 1.228802 -0.666064 0.252356 -0.470909 -0.746113
Columns 7 through 12:
0.028926 0.404821 0.044407 0.500323 0.660809 0.682371
0.842736 0.157225 0.928548 0.166813 0.222252 0.054478
0.231970 0.309345 0.949115 0.465862 0.833514 0.253321
0.440755 0.861170 0.511663 0.483208 0.310441 0.113771
Column 13:
0.772185
0.026078
0.211782
0.513986
Выполнено поэлементное перемножение матриц A и B:
>> G=A.*D
G =
0.6173 1.5849 -11.8667 -32.1576 -10.5838 -30.7098
-2.0387 8.6613 -10.1368 4.2340 -5.5524 -14.1634
-6.1806 -2.5949 1.7531 2.9187 -49.7570 49.5021
-6.1916 13.5168 -9.9910 4.7948 -10.8309 -20.1451
Выполнено поэлементное деление матрицы на константу 4.5:
>> M=G./4.5
M =
0.1372 0.3522 -2.6370 -7.1461 -2.3520 -6.8244
-0.4530 1.9247 -2.2526 0.9409 -1.2339 -3.1474
-1.3735 -0.5766 0.3896 0.6486 -11.0571 11.0005
-1.3759 3.0037 -2.2202 1.0655 -2.4069 -4.4767
Выполнено поэлементное возведение матрицы в степень 3:
>> DDD=D.^3
DDD =
64 512 1728 4096 8000 13824
125 729 2197 4913 9261 15625
216 1000 2744 5832 10648 17576
343 1331 3375 6859 12167 19683
Создана bool-матрица по условию D \geq 20:
>> DL=D>=20
DL =
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
Создана матрица-столбец на основе матрицы D:
>> Dstolb=D(:)
Dstolb =
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
п. 8: Стандартные математическое функции и операции с матрицами.
Выполнено поэлементное взятие квадратного корня из матрицы B:
>> B1=sqrt(B)
B1 =
0.1701 0.6363 0.2107 0.7073 0.8129 0.8261 0.8787
0.9180 0.3965 0.9636 0.4084 0.4714 0.2334 0.1615
0.4816 0.5562 0.9742 0.6825 0.9130 0.5033 0.4602
0.6639 0.9280 0.7153 0.6951 0.5572 0.3373 0.7169
Выполнено поэлементное извлечение логарифма из матрицы B:
>> B2=log(B)
B2 =
-3.543023 -0.904309 -3.114356 -0.692502 -0.414290 -0.382181 -0.258532
-0.171101 -1.850077 -0.074133 -1.790884 -1.503943 -2.909956 -3.646659
-1.461145 -1.173299 -0.052225 -0.763867 -0.182105 -1.373098 -1.552195
-0.819265 -0.149463 -0.670090 -0.727309 -1.169760 -2.173569 -0.665560
Выполнено поэлементное взятие синуса из матрицы B:
>> B3=sin(B)
B3 =
0.028922 0.393855 0.044392 0.479709 0.613756 0.630635 0.697702
0.746467 0.156578 0.800751 0.166040 0.220427 0.054451 0.026075
0.229896 0.304434 0.812901 0.449193 0.740298 0.250620 0.210203
0.426623 0.758606 0.489628 0.464622 0.305479 0.113526 0.491652
Найдена длина (количество столбцов) матрицы B1:
>> k=length(B1)
k = 7
Найдена размерность матрицы B1:
>> nm=size(B1)
nm =
4 7
Найдено количество элементов матрицы B1:
>> elem=numel(B1)
elem = 28
Создан линейно разделенный массив чисел NN от 11.5 до 34.1 с 20 элементами:
>> NN=linspace(11.5,34.1,20)
NN =
Columns 1 through 19:
11.500 12.689 13.879 15.068 16.258 17.447 18.637 19.826 21.016 22.205 23.395 24.584 25.774 26.963 28.153 29.342 30.532 31.721 32.911
Column 20:
34.100
Создана единичная матрица 2*4:
>> FF=ones(2,4)
FF =
1 1 1 1
1 1 1 1
Создана квадратная нулевая матрица 5*5:
>> GG=zeros(5)
GG =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Извлечена главная диагональ из матрицы B1:
>> B1D=diag(B1)
B1D =
0.1701
0.3965
0.9742
0.6951
Создана диагональная матрица DB на основе диагонали B1D:
>> DB=diag(B1D)
DB =
Diagonal Matrix
0.1701 0 0 0
0 0.3965 0 0
0 0 0.9742 0
0 0 0 0.6951
Выполнена сортировка по столбцам матрицы B:
>> BS1=sort(B)
BS1 =
0.028926 0.157225 0.044407 0.166813 0.222252 0.054478 0.026078
0.231970 0.309345 0.511663 0.465862 0.310441 0.113771 0.211782
0.440755 0.404821 0.928548 0.483208 0.660809 0.253321 0.513986
0.842736 0.861170 0.949115 0.500323 0.833514 0.682371 0.772185
Выполнена построчная сортировка первых двух строк матрицы B:
>> BS2=sortrows(B,2)
BS2 =
0.842736 0.157225 0.928548 0.166813 0.222252 0.054478 0.026078
0.231970 0.309345 0.949115 0.465862 0.833514 0.253321 0.211782
0.028926 0.404821 0.044407 0.500323 0.660809 0.682371 0.772185
0.440755 0.861170 0.511663 0.483208 0.310441 0.113771 0.513986
Найдены суммы столбцов матрицы D:
>> DS1=sum(D)
DS1 =
22 38 54 70 86 102
Найдены суммы по 2 измерению (строкам) матрицы D:
>> DS2=sum(D,2)
DS2 =
84
90
96
102
Найдено произведение по столбцам матрицы D:
>> DP1=prod(D)
DP1 =
840 7920 32760 93024 212520 421200
Найден определитель матрицы A*A^T:
>> dt=det(A*A')
dt = 27.581
Найдена обратная матрица для A*A^T:
>> dinv=inv(A*A')
dinv =
1.6754e-01 -8.7758e-02 2.8943e-02 -4.4913e-03
-8.7758e-02 7.7118e+00 3.8188e-01 -5.7451e+00
2.8943e-02 3.8188e-01 1.2657e-01 -3.0394e-01
-4.4913e-03 -5.7451e+00 -3.0394e-01 4.5891e+00
п. 9: Работа с индексами элементов матриц.
Найден элемент матрицы D по индексу 3, 5:
>> D1=D(3,5)
D1 = 22
Взята 3 строка матрицы D от 4 до последнего столбца:
>> D2=D(3,4:end)
D2 =
18 22 26
Взята прямоугольная матрица от 2, 3 до 3, 5 элемента матрицы D:
>> D3=D(2:3,3:5)
D3 =
13 17 21
14 18 22
Взяты элементы с 16 по 20 из столбца, созданного на основе матрицы D:
>> D4=D(16:20)
D4 =
19 20 21 22 23
Взята прямоугольная матрица, состоящая из 3-4 строк и 1, 3, 6 столбцов матрицы D:
>> D5=D(3:4,[1,3,6])
D5 =
6 14 26
7 15 27
п. 10: Циклы и условные операторы.
Цикл for с итератором i (6 итераций) и выводом Dsum:
>> Dsum=0
Dsum = 0
>> for i=1:6
Dsum=Dsum+sqrt(D(2,i))
endfor
Dsum = 2.2361
Dsum = 5.2361
Dsum = 8.8416
Dsum = 12.965
Dsum = 17.547
Dsum = 22.547
Цикл while c условием D(i)<22 и выводом Dsum2:
>> Dsum2=0;i=1
i = 1
>> while (D(i)<22)
Dsum2=Dsum2+sin(D(i))
i=i+1
endwhile
Dsum2 = -0.7568
i = 2
Dsum2 = -1.7157
i = 3
Dsum2 = -1.9951
i = 4
Dsum2 = -1.3382
i = 5
Dsum2 = -0.3488
i = 6
Dsum2 = 0.063321
i = 7
Dsum2 = -0.4807
i = 8
Dsum2 = -1.4807
i = 9
Dsum2 = -2.0173
i = 10
Dsum2 = -1.5971
i = 11
Dsum2 = -0.6065
i = 12
Dsum2 = 0.043799
i = 13
Dsum2 = -0.2441
i = 14
Dsum2 = -1.2055
i = 15
Dsum2 = -1.9565
i = 16
Dsum2 = -1.8066
i = 17
Dsum2 = -0.8937
i = 18
Dsum2 = -0.057011
i = 19
Условный оператор if:
>> if (D(3,5)>=20)
printf('D(3,5)>=20')
else
printf('D(3,5)<20')
endif
D(3,5)>=20
п. 11: Вывод графиков.
График значений для D, B:
plot(D(1,:),B([2,4],1:6))
Гистограмма для A:
hist(A(:),6)
Круговой график для C:
pie(C)
Столбчатая диаграмма для A:
bar(A)
п.12: Создание и использование скриптов.
>> prog1
D1 = 22
D2 =
18 22 26
D3 =
13 17 21
14 18 22
D4 =
19 20 21 22 23
D5 =
6 14 26
7 15 27





