Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная 3

.docx
Скачиваний:
2
Добавлен:
26.01.2023
Размер:
21.35 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра «Информатика»

Лабораторная работа №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.

-->//Конец сессии первого задания===============================