ответвлено от main/it-labs
537 строки
12 KiB
Markdown
537 строки
12 KiB
Markdown
# Отчет по теме 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
|
|
|
|
```
|
|
|
|
## п. 12-13: Сохранение скриптов и рабочего пространства.
|
|

|