- •Общее задание
- •Индивидуальное задание
- •Результат выполнения задания
- •Контрольные вопросы
- •Способы создания векторов и матриц.
- •С использованием какой функции можно определить длину вектора?
- •С использованием каких функций Scilab можно определить в матрице число строк, число столбцов и общее количество элементов матрицы?
- •С какого числа начинается индексация вектора?
- •Какую матрицу создает операция ones?
- •Что такое логическое индексирование матриц.
- •Что такое поэлементные действия (операции с точкой) и где они используются?
- •Каким образом можно транспонировать вектор или матрицу?
- •Требуется ли при работе с векторами и матрицами предварительное объявление их размера?
- •Какой символ используются для разделения элементов матрицы в строке, а какой для разделения ее строк?
- •Какие команды предназначены для заполнения матрицы случайными числами, распределенными по равномерному или нормальному закону распределения?
- •Формат команд выбора минимального и максимального значения элемента матрицы.
- •Список используемой литературы
Результат выполнения задания
// Первый сценарий–функция poisk_m_vect.sce для обработки вектора // Среди n последних элементов вектора mas функция poisk_m_vect // находит количество элементов, меньших x // Исходные данные: вектор mas; // выходные параметры функции индексы и произведение элементов mult function mysum = poisk_m_vect(mas, n, x)
// поиск по нечетным местам mas2 = find( mas < x ); mas3 = mas(mas2); k = length(mas3);// Кол-во элементов в векторе mas3 mas4 = mas3(k-n+1:k); mysum = sum(mas4); endfunction //Конец сценария poisk_m_vect.sce========================================= |
// Второй сценарий Pr1_3_1.sce для решения 1-й задачи // Реализует загрузку сценария poisk_m_vect.sce, ввод исходных данных, // обращение к функции poisk_m_vectи вывод результатов clear; // Очистка окна Обозреватель данных clc; // Очистка Командного окна // Загрузка сценария обработки вектора exec(‘poisk_m_vect.sce') // Создание вектора и ввод исходных данных для его обработки N=input("Введите размер массива N: ");
//k=input("Введите кол-во элементов вектора "); a=input("Введите начальное значение диапазона для вектора: "); b=input("Введите конечное значение диапазона для вектора: "); n=input("Введите число n: "); x=input("Введите число x: "); // Создание вектора в заданном диапазоне mas = grand(1,N,"uin",a,b); // Вывод исходного массива на экран disp("Исходный массив:",mas); //Обращениек функции для обработки вектора mysum = poisk_m_vect(mas,n,x)
// Вывод результата решения задачи mprintf('сумма последних n элементов меньше x'); disp(mysum) //Конец сценария Pr1_3_1.sce=============================================== |
--> // Сессия Командного окна 1-го задания: --> // Практическое занятие 1.3 по теме --> // «Матричные операции создания, доступа, извлечения --> // и модификации. Векторизация и индексирование» --> // Вариант 7, задание 1 --> // Выполнил: Студент группы
Введите размер массива N: 10
Введите начальное значение диапазона для вектора: 0
Введите конечное значение диапазона для вектора: 10
Введите число n: 3
Введите число x: 5
"Исходный массив:"
8. 6. 3. 1. 7. 1. 6. 6. 0. 2. сумма последних n элементов меньше x 3. |
Найти сумму элементов прямоугольной матрицы D(3х4), не лежащих в интервале
[a,b].
// Второй сценарий Pr1_3_2.sce для решения 2-й задачи // Реализует загрузку сценария obrab_matr.sce, ввод исходных данных, // формирование матрицы A, вызов функции и вывод результатов clear;// Очистка окна Обозреватель данных clc; // Очистка Командного окна //Загрузка сценария обработки матрицы exec(‘obrab_matr.sce') //Генерация матрицы размером NxN и значениями от -5 до 5 C=grand(3,4,"uin",-5,5); disp("Исходная матрица: ",C); a=input("Введите число a ="); b=input("Введите число b ="); res = obr(C,a,b); //Вызов функции решения задачи //Вывод результатов на экран disp("Сумма элементов, не лежащих в интервале [a,b]: ",res); // Конец сценарияPr1_3_2.sce ============================================== |
// Первый сценарий – функция obrab_matr.sce для решения задачи 2 // Найти сумму элементов прямоугольной матрицы D(3х4), не лежащих в интервале[a,b].
function res = obr(F,a,b) T1 = F; T2 = F; T1(T1>=a)=0; T2(T2<=b)=0;
res = sum(T1+T2) endfunction //Конец сценария obrab_matr.sce ========================================== |
--> // Сессия Командного окна 2-го задания: --> // Практическое занятие 1.3 по теме --> // «Матричные операции создания, доступа, извлечения --> // и модификации. Векторизация и индексирование» --> // Вариант 7, задание 2 --> // Выполнил: Студент группы
"Исходная матрица: "
2. -4. -2. -3. -2. -3. 3. 5. -5. -4. 4. -2. Введите число a =-3
Введите число b =3
"Сумма элементов, не лежащих в интервале [a,b]: "
-4. |