Skip to content

Instantly share code, notes, and snippets.

@NuarkNoir
Last active January 16, 2020 19:24
Show Gist options
  • Save NuarkNoir/96e768960273fcffa3075f1931d11cc6 to your computer and use it in GitHub Desktop.
Save NuarkNoir/96e768960273fcffa3075f1931d11cc6 to your computer and use it in GitHub Desktop.

3 Практические задания

  • Написать скрипт на языке MATLAB, который строит график функции sin(x2) на отрезке [−π, π] с шагом, равным 1/100 длины отрезка. На графике должны быть подписи осей, заголовок, и координатная сетка.
  • Написать скрипт на языке MATLAB, который строит график функции sin(x2 + y2) в области [−π, π] по каждой координате с шагом, равным 1/100 длины отрезка, в виде незакрашенной сетки. На графике должны быть подписи осей, заголовок, и координатная сетка.
  • Написать скрипт на языке MATLAB, который строит график функции cos(x2 + y2) в области [−π, π] по каждой координате с шагом, равным 1/100 длины отрезка, в виде закрашенной поверхности. На графике должны быть подписи осей, заголовок, и координатная сетка.
  • Написать скрипт на языке MATLAB, который генерирует N случайных действительных чисел, равномерно распределённых в интервале от 0 до 2, и строит их гистограмму. На графике должны быть подписи осей, заголовок, и координатная сетка.
  • Написать скрипт на языке MATLAB, который сортирует строки матрицы A, состоящей из N строк и M столбцов, по неубыванию первого элемента строки.
  • Написать функцию plot_row_sums(A) на языке MATLAB, которая отображает суммы строк матрицы A в виде столбчатой диаграммы.
  • Написать функцию remove_negative(A) на языке MATLAB, которая из матрицы A удаляет строки с отрицательной суммой и возвращает результат.
  • Написать функцию cross_mat(N, M) на языке MATLAB, которая возвращает матрицу из N строк и M столбцов, у которой на главной и побочной диагоналях стоят единицы, а остальные элементы равны нулю.
  • Написать функцию rand_sum(N, M) на языке MATLAB, которая возвращает вектор из N сумм, каждая из которых состоит из M случайных действительных слагаемых, равномерно распределённых в интервале [0; 1].
  • Написать функцию is_comm(A, B) на языке MATLAB, которая возвращает истину, если умножение матриц A, B является коммутативным (A B = B A), и ложь, если нет.
  • Задания на защиту практической работы «Знакомство с MATLAB» из электронного курса.

Спасибо, Кирил Владимирович

function h = cross_mat(N, M)
h = eye(N, M) + fliplr(eye(N, M));
h(h == 2) = 1;
end
function h = is_comm(A, B)
h = false;
if size(A)(2) == size(B)(1)
h = isequal(A*B, B*A);
end
end
function [] = plot_row_sums(A)
figure;
bar(sum(A, 2));
end
function h = rand_sum(N, M)
#norm = @(x)x./sum(x)#?
h = arrayfun(@()sum(rand(1, M)), 1:N);
end
function h = remove_negative(A)
h = A;
h(sum(h, 2) < 0, :) = [];
end
f = @(x) sin(x.^2);
X = -pi:0.01:pi;
figure;
plot(X, f(X));
xlabel("x");
ylabel("y");
title("FiGuRa SiN");
grid on;
f = @(x, y) sin(x.^2 + y.^2);
[X,Y] = meshgrid(linspace(-pi, pi, length(-pi:0.01:pi)));
figure;
mesh(X, Y, f(X, Y));
xlabel("x");
ylabel("y");
zlabel("z");
title("FiGuRa SiN");
grid on;
f = @(x, y) cos(x.^2 + y.^2);
[X,Y] = meshgrid(linspace(-pi, pi, length(-pi:0.01:pi)));
figure;
surf(X, Y, f(X, Y));
xlabel("x");
ylabel("y");
zlabel("z");
title("FiGuRa CoS");
grid on;
N = 1000;
r = rand(1, N);
nums = 2 * (r ./ sum(r));
figure;
hist(nums);
xlabel("number");
ylabel("count");
title("numbers distribution");
grid on;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment