
- •210700.62 Инфокоммуникационные технологии и системы связи
- •1. Понятие информации. Введение в дискретные структуры
- •1.1 Понятие информации, информационные процессы
- •1.1.1 Понятие информации. Роль информации в развитии общества
- •1.1.2 Распознавание, хранение, передача, обработка и поиск информации
- •1.1.3 Многообразие форм информации и способов ее обработки
- •1.1.4 Кодирование информации. Количество и единицы измерения информации
- •1.1.5 Информатика как наука
- •1.2 Системы счисления, используемые в компьютере
- •1.2.1 Позиционные системы счисления, основные понятия
- •1.2.2 Перевод чисел в другие системы счисления
- •2 Арифметические и логические основы эвм
- •2.1 Технические средства реализации информационных процессов
- •2.1.1 История развития эвм
- •2.1.2 Классификация компьютерных систем
- •2.1.3 Общие принципы построения современных компьютеров
- •2.1.4 Функциональная структура компьютера
- •2.1.5 Периферийные устройства эвм
- •2.1 Операции с числами в эвм. Логические основы эвм
- •2.1.1 Представление числовых данных в памяти эвм
- •2.2.2 Машинные операции с двоичными числами
- •2.2.3 Основные понятия алгебры логики. Элементарные логические операции
- •2.2.4 Базовые логические элементы компьютера
- •2.3 Операционные системы
- •2.3.1 Структура программного обеспечения компьютерных систем
- •2.3.2 Операционные системы и оболочки
- •2.3.3 Архитектура ос. Ядро и его функции
- •2.3.4 Файловые системы ос
- •3 Основы алгоритмизации, введение в программирование и основы работы с пакетами прикладных программ
- •3.1 Основы алгоритмизации
- •3.1.1 Понятие алгоритма и его свойства
- •3.1.2 Средства описания алгоритмов
- •3.1.3 Основные типы структур алгоритмов
- •3.1.4 Примеры реализации основных алгоритмических структур
- •3.1.5 Структурированные данные и алгоритмы их обработки
- •3.2 Введение в программирование matlab
- •3.2.1 Вычислительная среда matlab
- •3.2.2 Особенности интерфейса программы
- •3.2.3 Типы данных. Выражения. Операторы. Функции
- •3.2.4 Понятие массива. Операции с матрицами и массивами
- •3.2.5 Управляющие конструкции языка программирования
3.2.4 Понятие массива. Операции с матрицами и массивами
Все данные MATLAB представляет в виде массивов. Массив — упорядоченная, пронумерованная совокупность однородных данных. У массива должно быть имя.
Массивы различаются по числу размерностей или измерений:
одномерные,
двумерные,
многомерные.
Размером массива называют число элементов вдоль каждого из измерений. Доступ к элементам осуществляется при помощи индекса. В MATLAB нумерация элементов массивов начинается с единицы. Это значит, что индексы должны быть больше или равны единице.
Вектор, вектор-строка, матрица или тензор являются математическими объектами, а одномерные, двумерные или многомерные массивы — способы хранения этих объектов в компьютере.
Вектор может быть записан в столбик (вектор-столбец) и в строку (вектор-строка).
Ввод, сложение и вычитание векторов
Простой пример работы с векторами – вычисление суммы векторов.
Пусть для хранения векторов используются массивы а и b.
Элементы массива вводятся в квадратных скобках с разделением точкой с запятой (вектор-столбец) или запятой (вектор-строка):
а = [1.3; 5.4; 6.9];
b = [7.1; 3.5; 8.21];
Для нахождения суммы векторов используется знак +.
Результат суммы векторов записывается в массив с:
с = а + b;
Для нахождения разности векторов следует применять знак минус.
Если размеры векторов, к которым применяется сложение или вычитание, не совпадают, то выдается сообщение об ошибке.
Особенность MATLAB представлять все данные в виде массивов является очень удобной. Пусть, например, требуется вычислить значение функции sin сразу для всех элементов вектора с (который хранится в массиве с) и записать результат в вектор d. Можно использовать оператор присваивания:
d = sin(c);
Встроенные в MATLAB элементарные функции приспосабливаются к виду аргументов. Если аргумент является массивом, то результат функции будет массивом того же размера, но с элементами, равными значению функции от соответствующих элементов исходного массива.
Обращение к элементам вектора
Доступ к элементам вектора осуществляется при помощи индекса, заключаемого в круглые скобки после имени массива, в котором хранится вектор. Если среди переменных рабочей среды есть массив v, определенный вектором
v = [1.3, 3.6, 7.4, 8.2, 0.9];
то для обращения, например, к четвертому элементу используется индексация:
h = v(4);
В результате переменной h присваивается значение 8.2.
Указание элемента массива в левой части оператора присваивания приводит к изменению в массиве. Например, выполнение выражения
v(2) = 555;
приводит к тому, что второму элементу массива v присваивается значение 555.
Из элементов массива можно формировать новые массивы, например:
u = [v(3); v(2); v(1)];
MATLAB предоставляет удобный способ обращения к блокам последовательно расположенных элементов вектора. Для этого служит индексация при помощи знака двоеточие. Пусть в заданном векторе w из семи элементов требуется заменить нулями элементы со второго по шестой. Индексация при помощи двоеточия позволяет просто и наглядно решить поставленную задачу:
w(2:6) = 0;
Умножение векторов
Вектор можно умножить на другой вектор различными способами:
поэлементно,
скалярно (это произведение еще называют внутренним),
векторно,
образовать так называемое внешнее произведение.
Результатом скалярного произведения является число, векторного – вектор, внешнего – матрица, поэлементного – вектор.
Поэлементные операции с векторами
Операция .* приводит к поэлементному умножению векторов одинаковой длины. В результате получается вектор с элементами, равными произведению соответствующих элементов исходных векторов:
u = v1 .* v2;
При помощи .^ осуществляется поэлементное возведение в степень:
р = v1 .^ 2;
Показателем степени может быть вектор той же длины, что и возводимый в степень. При этом каждый элемент первого вектора возводится в степень, равную соответствующему элементу второго вектора.
Деление соответствующих элементов векторов одинаковой длины выполняется с использованием . /
d = v1./v2;
Обратное поэлементное деление (деление элементов второго вектора на соответствующие элементы первого) осуществляется при помощи .\
К поэлементным относятся и операции с вектором и числом. Сложение вектора и числа не приводит к сообщению об ошибке. MATLAB прибавляет число к каждому элементу вектора. То же самое справедливо и для вычитания.
Скалярное произведение
Скалярное произведение векторов а и b длины N, состоящих из действительных чисел, определяется формулой
.
Следовательно, для вычисления скалярного произведения необходимо просуммировать компоненты вектора, полученного в результате поэлементного умножения а на b.
Векторное произведение
Векторное произведение ab определено только для векторов из трехмерного пространства, т. е. состоящих из трех элементов. Результатом также является вектор из трехмерного пространства. Для вычисления векторного произведения в MATLAB служит функция cross.
Внешнее произведение
Внешним
произведением векторов
называется матрица
размерностью NM,
элементы которой вычисляются по формуле
Вектор-столбец
a
в MATLAB представляется в виде двумерного
массива размера N
на один. Вектор-столбец b
при транспонировании переходит в
вектор-строку размера один на М.
Вектор-столбец и вектор-строка есть
матрицы, у которых один из размеров
равен единице. Фактически
,
где умножение происходит по правилу
матричного произведения. Для вычисления
матричного произведения в MATLAB используется
оператор умножения.
Двумерные массивы (матрицы)
Для хранения матрицы используется двумерный массив. При вводе матрицы ее можно рассматривать как вектор-столбец из двух элементов, каждый из которых является вектор-строкой, следовательно, строки при наборе отделяются точкой с запятой.
Пример ввода матрицы размером 23
A = [3, 1, -1; 2, 4, 3];
Доступ к элементам матриц осуществляется при помощи двух индексов - номеров строки и столбца, заключенных в круглые скобки. Например А(2,1) означает обращение к элементу матрицы расположенному во второй строке и первом столбце.
Элементы матриц могут входить в состав выражений, например
A = C(1, 1) * C(2, 2) + C(2, 3);
При использовании матричных операции следует помнить, что для сложения или вычитания матрицы должны быть одного размера, а при перемножении число столбцов первой матрицы обязано равняться числу строк второй матрицы. Сложение и вычитание матриц, так же как чисел и векторов, осуществляется при помощи знаков плюс и минус. Для умножения матриц и умножение матрицы на число используется оператор умножения.
Поскольку векторы и матрицы хранятся в двумерных массивах, то применение математических функций к матрицам и поэлементные операции производятся так же, как для векторов.
Умножение каждого элемента одной матрицы на соответствующий элемент другой производится при помощи оператора .*, например
C = A.*B;