За замовчуванням всі числові змінні в MATLAB вважаються матрицями, так що скалярна величина є матриця першого порядку, а вектори є матрицями, що складаються з одного стовпчика або одного рядка. Матрицю можна ввести, задавши її елементи або прочитавши дані з файлу, а також в результаті звернення до стандартної або написаної користувачем функції.
Матричні дані розміщуються в пам'яті послідовно по стовпцях. Елементи матриці в межах рядка відокремлюються пробілами або комами. Безпосереднє завдання матриці можна здійснити кількома способами. Наприклад, вектор-стовпець, тобто матриця, друга розмірність якої дорівнює одиниці, може бути присвоєна змінної А введенням одного рядка:
>> A = [7 + 4i; 4; 3.2]% Введення вектора-стовпця
або введенням кількох рядків
>> A = [% введення вектора по рядках
Вектори можуть бути сформовані як діапазони - за допомогою двокрапки, які поділяють стартове значення, крок і граничне значення. Якщо величина кроку відсутня, то за замовчуванням його значення дорівнює одиниці.
В результаті n: m: k буде сформований вектор, останній елемент якого не більше k для позитивного кроку m. і не менше - для негативного: [n. n + m, n + m + m, ...]
Завдання діапазону використовується також при організації циклу.
У таблиці 2.1 представлений деякий набір функцій для створення матриць спеціального виду.
Таблиця 2.1. Функції опису матриць
Знаходження визначника (детермінанта) квадратної матриці A
Звернення до елементу матриці виробляється за правилом, - в круглих дужках після імені матриці даються індекси, які повинні бути позитивними цілими числами, що вказують номер рядка і через кому, номер стовпця. Наприклад, А (2,1) означає елемент з другого рядка першого стовпчика матриці А.
Для подальших прикладів введемо матрицю 2x2:
>> A = [1 2 + 5 * i; 4.6 3]
1.0000 2.0000 + 5.0000i
Щоб змінити елемент матриці, йому потрібно присвоїти нове значення:
>> A (2,2) = 10% Другий елемент другого рядка
1.0000 2.0000 + 5.0000i
Розмір матриці можна уточнити по команді size. а результат команди size можна використовувати для організації нової матриці.
Наприклад, нульова матриця того ж порядку, що і матриця А. буде сформована за командою
За допомогою двокрапки легко виділити частину матриці. Наприклад, вектор з перших двох елементів другого стовпця матриці A задається виразом:
Двокрапка саме по собі означає рядок або стовпець цілком. Для видалення елемента вектора досить привласнити йому порожній масив - пару квадратних дужок []. Щоб викреслити одну або кілька рядків (стовпців) матриці потрібно вказати діапазон видаляються рядки (стовпчики) для однієї розмірності і поставити двокрапку для іншої розмірності. Для знаходження довжини вектора можна скористатися також командою length.
Набір арифметичних операцій в MATLAB для роботи з матрицями складається зі стандартних операцій додавання - віднімання, множення - ділення, операції піднесення до степеня і доповнені спеціальними матричними операціями (табл.2.2). Якщо операція застосовується до матриць, розміри яких не узгоджені, то буде виведено повідомлення про помилку.
Для поелементного виконання операцій множення, ділення і піднесення до степеня застосовуються комбіновані знаки (крапка і знак операції). Наприклад, якщо за матрицею стоїть знак (^), то вона зводиться до степеня, а комбінація (. ^) Означає зведення в ступінь кожного елемента матриці. При множенні (складання, віднімання, ділення) матриці на число відповідна операція завжди проводиться поелементно.
Таблиця 2.2 Знаки операцій
Обчислює добуток всіх елементів стовпців
Символи і текстові рядки в MATLAB вводяться за допомогою простих лапок. У внутрішньому представленні символи дані цілими числами. Конвертувати масив символів в числову матрицю дозволяє команда double. Зворотна операція відбувається по команді char. Друковані символи зі стандартного набору ASCII представлені числами від 32 до 255.
Наведемо приклади для даних команд. Спочатку введемо рядок:
Відзначимо, що для введення російських букв слід вибрати в меню File / Preferences / Command Windows Font шрифт з російської кодуванням.
Привіт від MATLAB
Той же результат вийде, якщо замість змінної v використовувати строкову змінну s.
Для перекладу численних даних в рядкові змінні є ряд команд перетворення. У таблиці 2.4 наведені деякі функції для цих і зворотних операцій, а повних список можна отримати по команді help strfun.
Таблиця 2.4 Функції роботи із строковими змінними
- довільну вектор-рядок (v), розмірність 2;
- довільний вектор-стовпець (w), розмірність 2;
- довільну матрицю (m), розмірності 2 × 2.
2. Генерація матриць спеціального виду.
- матрицю з нульовими елементами (m0), розмірності 2 × 2;
- матрицю з одиничними елементами (m1), розмірності 2 × 2;
- матрицю з елементами, що мають випадкові значення (mr), розмірності 2 × 2;
- матрицю з одиничними діагональними елементами (me), розмірності 2 × 2.
3. Обчислення матриці M за формулою, представленої в таблиці 2.5.
4. Вивчення функцій обробки даних:
- визначення числа рядків і стовпців матриці M;
- визначення максимального елемента матриці M;
- визначення мінімального елемента матриці M;
- підсумовування елементів матриці M;
- множення елементів матриці M.
Таблиця 2.5 Варіанти завдань
3. Опис команд генерації матриць спеціального виду.
4. Опис основних функцій обробки даних.
1. Як здійснюється введення вектора-рядка?
2. Як здійснюється введення вектора-стовпця?
3. Як здійснюється введення матриці?
4. Для чого служить команди zeros, ones, rand, eye?
5. Як визначається число рядків і стовпців матриці?
6. Які операції служать для визначення мінімального і максимального елемента матриці?
Практичне заняття № 3