Главная страница
Навигация по странице:

  • «Московский технический университет связи и информатики» Кафедра «Информатика»Лабораторная работа №1.3«Матричные операции создания, доступа

  • Результаты выполнения заданий: Первое задание: Протокол сессии командного окна

  • Сценарий Poisk . sce

  • Второе задание: Протокол сессии командного окна

  • Сценарий making_mas. sce

  • Сценарий find_and_replace.sce

  • Лабораторная работа 1. 3 Матричные операции создания, доступа, извлечения и модификации. Векторизация и индексирование по дисциплине


    Скачать 24.01 Kb.
    НазваниеЛабораторная работа 1. 3 Матричные операции создания, доступа, извлечения и модификации. Векторизация и индексирование по дисциплине
    Анкорscilab lab 1
    Дата02.03.2023
    Размер24.01 Kb.
    Формат файлаdocx
    Имя файла13.docx
    ТипЛабораторная работа
    #965702

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

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

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

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

    Лабораторная работа №1.3

    «Матричные операции создания, доступа,

    извлечения и модификации.

    Векторизация и индексирование»
    по дисциплине

    «Пакеты прикладных программ»

    Выполнил: студент гр. БИБ2103 Сумарока Н.С.

    Вариант №21
    Проверил: доц. Шакин В.Н.

    Москва, 2022 г.

    Цель работы: Изучение способов создания векторов и матриц, операций

    индексирования и векторизации, поэлементных выражений с векторами и

    матрицами.

    Общее задание:

    1) Изучить материал учебника (п.1.3).

    2) Выбрать вариант индивидуального задания из табл.1.3-1. Каждое задание содержит две задачи.

    3) Выполнить команды clear и clc для очистки Обозревателя переменных и Командного окна.

    4) Открыть новое окно редактора SciNotes.

    5) Создать для выполнения каждой задачи по два сценария.

    Первый сценарий должен содержать функции, предназначенные для выполнений действий над векторами и матрицами с использованием матричных операций.

    Второй предназначен для ввода исходных данных, вызова сценария и вывода результатов. Здесь для вывода отдельных значений и пояснений следует использовать функцию mprintf, а для вывода числовых массивов – функции mprintf или disp.

    6) Сохранить sce-сценарии в файлах, исправить ошибки.

    7) Решить индивидуальные задания, выполнив созданные сценарии.

    8) Сохранить все результаты для отчета.

    9) Предоставить результаты работы преподавателю, ответить на поставленные вопросы.

    10) Оформить отчет по выполненной работе.

    Индивидуальное задание:

    1. Найти максимальное значение среди элементов вектора между номерами n1 и n2.

    2. В вещественной матрице определить суммы элементов, расположенных на нечетных местах в каждой строке. Заменить полученными значениями элементы последнего столбца матрицы.


    Результаты выполнения заданий:

    Первое задание:

    Протокол сессии командного окна:

    --> // Сессия Командного окна:

    --> // «Матричные операции создания, доступа, извлечения

    --> // Вариант 21, задание 1

    --> // Выполнил студент группы БИБ2103 Сумарока Н.С.

    --> // Вызов и выполнение сценария poisk_max.sce

    --> clear // Очистка окна Обозревателя данных

    --> clc // Очистка Командного окна

    exec('poisk_max ', 0);

    Введите число n1 = 3

    Введите число n2 = 5

    Введите кол-во элементов вектора 10

    Введите начальное значение диапазона для вектора 0

    Введите конечное значение диапазона для вектора 10

    "Исходный массив:"

    6. 3. 10. 9. 4. 7. 0. 6. 5. 4.

    Искомая сумма: 10

    --> // Конец сессии 1-го задания=================================
    Сценарий Poisk.sce:

    // Первый сценарий–функция poisk.sce для обработки вектора

    // Найти максимальное значение среди элементов вектора между номерами n1 и n2.

    // Исходные данные: параметры n1, n2 и вектор mas

    // Выходныеданные: параметр maximum

    function [maximum]=poisk(mas, n1, n2)

    maximum = max(mas(n1:n2));

    endfunction

    // Конецсценария poisk.sce===========================

    Сценарий poisk_max.sce:

    // Второй сценарий poisk_max.sce для решения 1-й задачи

    // Реализует загрузку сценария poisk.sce, ввод исходных данных,

    // обращение к функции poisk и вывод результатов

    clear; // Очистка окна Обозреватель данных

    clc; // Очистка Командного окна

    // Загрузка сценария обработки вектора

    exec('Poisk.sce');

    // Создание вектора и ввод исходных данных для его обработки

    n1 = input("Введите число n1 = ");

    n2 = input("Введите число n2 = ");

    kol = input("Введите кол-во элементов вектора ");

    a = input("Введите начальное значение диапазона для вектора ");

    b = input("Введите конечное значение диапазона для вектора ");

    // Создание вектора в заданном диапазоне

    mas = grand(1, kol, "uin", a, b);

    // Вывод исходного массива на экран

    disp("Исходный массив:", mas);

    // Обращениек функции для обработки вектора

    [maximum] = poisk(mas,n1,n2);

    // Вывод результата решения задачи

    mprintf('Искомая сумма: %d', maximum);

    // Конец сценария poisk_max.sce =======================================
    Второе задание:

    Протокол сессии командного окна:

    --> // Сессия Командного окна:

    --> // «Матричные операции создания, доступа, извлечения

    --> // Вариант 21, задание 2

    --> // Выполнил студент группы БИБ2103 Сумарока Н.С.

    --> // Вызов и выполнение сценария making_mas.sce

    --> clear // Очистка окна Обозревателя данных

    --> clc // Очистка Командного окна

    --> exec(‘making_mas.sce',0);

    Введите размер матрицы NxN 6

    Введите число a = 1

    Введите число b = 10

    "Исходная матрица: "

    4. 9. 2. 9. 3. 8.

    1. 3. 1. 6. 0. 9.

    8. 6. 6. 0. 1. 2.

    0. 8. 5. 6. 2. 10.

    5. 2. 2. 7. 1. 3.

    2. 8. 10. 7. 3. 5.

    Сумма значений: 20

    "Полученная матрица после замены : "

    4. 9. 2. 9. 3. 20.

    1. 3. 1. 6. 0. 20.

    8. 6. 6. 0. 1. 20.

    0. 8. 5. 6. 2. 20.

    5. 2. 2. 7. 1. 20.

    2. 8. 10. 7. 3. 20.

    --> // Конец сессии 2-го задания ===========================================
    Сценарий_making_mas._sce'>Сценарий making_mas.sce:

    // Второй сценарий making_mas.sce для решения 2 задания

    // Реализует загрузку сценария find_and_replace.sce, ввод исходных данных,

    // формирование матрицы mas, вызов функции find_and_replace и вывод результатов

    clear; // Очистка окна Обозреватель данных

    clc; // Очистка Командного окна

    // Загрузка сценария обработки матрицы

    exec('find_and_replace.sce');

    // Создание матрицы и вводисходных данных для ее обработки

    N = input("Введите размер матрицы NxN ");

    a = input("Введите число a = ");

    b = input("Введите число b = ");

    // Генерация матрицы размером NxN и значениями от 0 до 100

    mas = grand(N,N,"uin",0,10);

    disp("Исходная матрица: ", mas);

    // Вызов функции решения задачи

    [newmas, summma] = find_and_replace(mas, N);

    // Вывод результатов на экран

    mprintf('Сумма значений: %d', summma);

    disp("Полученная матрица после замены : ", newmas);

    // Конец making_mas.sce ==========================
    Сценарий find_and_replace.sce:

    // Первый сценарий-функция find_and_replace.sce для решения задачи 2

    // В вещественной матрице определить суммы элементов, расположенных

    // на нечетных местах в каждой строке. Заменить полученными значениями

    // элементы последнего столбца матрицы.

    function [newmas, summa]=find_and_replace(mas, N)

    newmas = mas;

    summa = sum(mas(1:N,1:N:2));

    newmas(1:N,N) = summa;

    endfunction

    // Конецсценария find_and_replace.sce============================


    написать администратору сайта