% Создаем матрицу с копированием свойств существующей
v = [2 3 1 5];
rn = rand(size(v),'like',v);
% Генерируем целые числа в диапазоне
a = 2;
b = 8;
n = 10;
rn = round(a + (b-a).*rand(n,1));
В MATLAB существует несколько способов генерации матрицы в заданном диапазоне:
%%Матрица 3x3 с числами от 1 до 100:
matrix = 1 + 99.*rand(3, 3);
%%Матрица 4x4 с целыми числами от -10 до 10:
matrix = -10 + 20.*randi([0 1], 4, 4);
%%Матрица 5x5 с нормальным распределением от 0 до 10:
matrix = 0 + 10.*randn(5, 5);
matrix = max(min(matrix, 10), 0);
%%матрица 7x7 с числами от -1 до 1:
Равномерное распределение: (для большинства задач подойдет)
matrix = -1 + 2.*rand(7, 7);
%%Нормальное распределение: (нормальное распределение с возможными выбросами)
matrix = 0 + 1.*randn(7, 7);
matrix = max(min(matrix, 1), -1);
%% Целые числа (-1, 0, 1): (только целые значения)
matrix = -1 + 2.*randi(0 1, 7, 7);
%% С использованием truncate (для MATLAB 2019a и выше/метод гарантирует нормальное распределение без выбросов):
pd = makedist('Normal', 'mu', 0, 'sigma', 1);
truncatedPd = truncate(pd, -1, 1);
matrix = random(truncatedPd, 7, 7);
способы определить знак каждого элемента массива
способы сложения значений матриц по компонентам
(кумулятивные суммы)
Варианты визуализации
Для больших матриц лучше использовать imagesc или contourf
При небольшом количестве столбцов удобен stacked bar chart
Для анализа - линейный график
colorbar поможет интерпретировать цветовые шкалы
original_matrix = randi([-1, 1], 7, 7); % матрица 7х7
cumulative_sums = cumsum(original_matrix, 1);
массив | A1 | A2 | A3 | A4 | |
---|---|---|---|---|---|
испытаний | 200 | 80 | 1,00E+03 | 3,00E+06 | |
шагов | 9,01E+05 | 1,25E+06 | 1,00E+02 | 24 | |
первый график | линейный | линейный | линейный | линейный |
блок | второй график | дополнение | |
---|---|---|---|
B1 | 3D поверхность (~1/1000) | на первом графике - отобразить границы дисперсии (квадрат отклонения случайной величины) | |
B2 | тепловая карта | на первом графике - найти в массиве сгенерированных данных для первой части для всех m – испытаний, точки верхнего предельного отклонения, и отобразить их для каждого m/100 матроса | |
B3 | график с накоплением | на первом графике - найти в массиве сгенерированных данных для первой части для всех m – испытаний, точки нижнего предельного отклонения и отобразить их для каждого m/10 матроса | |
B4 | контурная карта (~1/500) | в третьем графическом окне построить график испытания (содержащий максимальное верхнее/нижнее предельное отклонение из всех m-испытаний), в том же коде. (таким образом дописать код, чтобы при повторной компиляции график строился автоматически) |
Дисперсия
где: an - отклонение на шаге (1 / -1; p /1-p; 0.5/0.5)
для усреднения умножим Sn само на себя
где:
с учетом результатов суммы получатся:
средний квадрат отклонения (дисперсия)
среднеквадратичное отклонение
Поиск минимальных/максимальных значений
для матрицы кумулятивных сумм
y=cumsum(siqnum);
определить минимальное(максимальное) значение и получить его индекс
[P1,I1]=min(y);
Вариант | Задания А | Задания B | |
---|---|---|---|
1 / 17 | A1 | B1 | |
2 / 18 | A2 | B2 | |
3 / 19 | A3 | B3 | |
4 / 20 | A4 | B4 | |
5 / 21 | A1 | B1 | |
6 / 22 | A2 | B2 | |
7 / 23 | A3 | B3 | |
8 / 24 | A4 | B4 | |
9 / 25 | A1 | B1 | |
10 / 26 | A1 | B2 | |
11 / 27 | A2 | B2 | |
12 / 28 | A3 | B3 | |
13 / 29 | A4 | B4 | |
14 / 30 | A1 | B1 | |
15 / 31 | A3 | B3 | |
16 / 32 | A4 | B4 |