Лабораторная 3
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра «Информатика»
Лабораторная работа №3
«Матрицы – создание, доступ, матричные операции и функции»
Выполнил: студент гр. БСТ21.
Вариант №13
Проверил: доц. Шакин В.Н.
Москва, 2021 г.
Лабораторная работа №3
«Матрицы – создание, доступ, матричные операции и функции»
1 Общее задание
1) Изучите материал учебника (п.1.3).
2) Выберете вариант индивидуального задания из табл. 1.3-1.
3) Выполните команды clear и clc для очистки окна Обозревателя переменных и Командного окна.
4) Откройте новое окно редактора SciNotes.
5) Перед программой, предназначенной для обработки массивов, создайте для первой части задания одномерные массивы (вектора), а для второй— двумерные массивы (матрицы).
6) Введите программу отработки массивов согласно вашему индивидуальному заданию. Программа должна быть универсальной, т. е. выполняться для произвольного количества элементов исходного вектора и произвольного числа строк и столбцов исходной матрицы, все действия над векторами и матрицами должны быть выполнены с использованием матричных функций, и снабжены комментариями. Для вывода отдельных значений и пояснений следует использовать функцию mprintf, а для вывода числовых массивов— функцию disp.
7) Сохраните sce-сценарий в файле, исправьте ошибки и выполните.
8) Сохраните sce-сценарий под другим именем и выполните, загрузив его в Командное окно.
9) Сохраните все результаты для отчета.
10)Предоставьте результаты работы преподавателю, ответьте на поставленные вопросы.
11) Оформите отчет по выполненной работе.
2 Индивидуальное задание
1) Задание с использованием матриц: В каждой строке матрицы К(mxn) найти количество элементов больше х1 и заменить их на значение последнего элемента строки. Вывести полученную матрицу по столбцам.
2) Результаты выполнения задания (сценарии и протоколы сессии)
//Первый сценарий - функция obrab_matr.sce для решения задачи 1
//Функция находит количество элементов больше x1
// и заменяет их на значение последнего элемента строки
function [B, C, xx]=zamena(K)
B=K(:,$) //создание вектора из последних элементов
C(:)=repmat(B,1,M) //создание матрицы, строки = посл. элементам
xx=find(K<=x1) //номера элементов матрицы D<x1
C(xx)=K(xx) //замена элементов, отвечающих условию хх посл.
endfunction
//Конец сценария obrab_matr.sce=================================
//Второй сценарий Pr1_3_2.sce для решение первой задачи
// Реализует загрузку сценария obrab_matr.sce, ввод исходных данных,
// формирование матрицы K, вызов функции zamena и вывод результатов
clear;// Очистка окна Обозреватель данных
clc;// Очистка Командного окна
//Загрузка сценария обработки матрицы и ввод исходных данных
exec("obrab_matr.sce");
M=input("Введите количество столбцов ");
N=input("Введите количество строк ");
x1=input("Введите число ");
//Генерация матрицы размером MxN и значениями от 0 до 10
K=grand(N,M,"uin",0,10);
//Вывод исходной матрицы
disp("Исходная матрица: ", K);
[B,C,xx]=zamena(K); //Вызов функции решения задачи
//Вывод результатов на экран
disp("Полученная матрица после замены: ", C);
//Конец сценария Pr1_3_2.sce====================
-->// Сессия командного окна:
-->//Практическое занятие 1.3 по теме
-->//«Матричные операции создания, доступа, извлечения
-->//и модификации. Векторизация и индексирование»
-->// Вариант 13, задание 1
-->// Выполнил: Студент группы БСТ21
-->exec("Pr1_3_2.sce");
Введите количество столбцов: 4
Введите количество строк: 5
Введите число: 2
"Исходная матрица: "
6. 7. 2. 5.
3. 0. 3. 2.
10. 6. 3. 3.
9. 5. 8. 2.
4. 4. 0. 7.
"Полученная матрица после замены: "
5. 5. 2. 5.
2. 0. 2. 2.
3. 3. 3. 3.
2. 2. 2. 2.
7. 7. 0. 7.
-->//Конец сессии первого задания===============================