Відмінності між версіями «Основи роботи в MATLAB»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Константи)
Рядок 1: Рядок 1:
=='''Довідка про MatLab'''==
+
=='''Історична довідка'''==
Matlab – одна з найстаріших, ретельно пророблених і провірених часом систем автоматизації математичних розрахунків, побудована на розширеному представленні і застосуванні матричних операцій. Звідси й пішла назва системи – MATrix LABoratory – матрична лабораторія.<br>
+
MATLAB як мова програмування була розроблена Клівом Моулером (англ. ''Cleve Moler'') наприкінці 1970-х років, коли він був деканом факультету комп'ютерних наук в Університеті Нью-Мексико. <br>
 +
Метою розробки служила задача дати студентам факультету можливість використання програмних бібліотек Linpack і EISPACK без необхідності вивчення Фортрану. Незабаром нова мова поширилася серед інших університетів і була з великим інтересом зустрінутий вченими, що працюють в області прикладної математики. <br>
 +
До цих пір в Інтернеті можна знайти версію 1982 року, написану на Фортрані, поширювану з відкритим вихідним кодом. Інженер Джон Літтл (англ. ''John N. (Jack) Little'') познайомився з цією мовою під час візиту Клива Моулера в Стенфордський університет в 1983 році. Зрозумівши, що нова мова володіє великим комерційним потенціалом, він об'єднався з Клівом Моулером і Стівом Бангертом (англ.'' Steve Bangert''). Спільними зусиллями вони переписали MATLAB на C і заснували в 1984 компанію The MathWorks для подальшого розвитку. Ці переписані на С бібліотеки довгий час були відомі під ім'ям JACKPAC. <br>
 +
Спочатку MATLAB призначався для проектування систем управління (основна спеціальність Джона Літтла), але швидко завоював популярність у багатьох інших наукових і інженерних областях. Він також широко використовувався і в освіті, зокрема, для викладання лінійної алгебри та чисельних методів. <br><br>
 +
=='''Про MatLab'''==
 +
MatLab – одна з найстаріших, ретельно пророблених і провірених часом систем автоматизації математичних розрахунків, побудована на розширеному представленні і застосуванні матричних операцій. Звідси й пішла назва системи – MATrix LABoratory – матрична лабораторія.<br>
 
Matlab поставляється як комплекс Matlab + Simulink + Toolbox + Blockset, де розділами системи Toolbox і Blockset корпорація MathWorks називає пакети розширення для систем Matlab і Simulink, відповідно.<br>  
 
Matlab поставляється як комплекс Matlab + Simulink + Toolbox + Blockset, де розділами системи Toolbox і Blockset корпорація MathWorks називає пакети розширення для систем Matlab і Simulink, відповідно.<br>  
Однією із основних задач системи Matlab завжди було надання користувачам потужної мови програмування, орієнтованої на технічні і математичні розрахунки і здатної перевершити можливості традиційних мов програмування, котрі багато років використовувались для реалізації чисельних методів. При цьому особлива увага приділялась як підвищенню швидкості обчислень, так і адаптації системи до розв’язку самих різноманітних задач користувачів.<br>
+
Однією із основних задач системи Matlab завжди було надання користувачам потужної мови програмування, орієнтованої на технічні і математичні розрахунки і здатної перевершити можливості традиційних мов програмування, котрі багато років використовувались для реалізації чисельних методів. При цьому особлива увага приділялась як підвищенню швидкості обчислень, так і адаптації системи до розв’язку самих різноманітних задач користувачів.<br><br>
 
=='''Запуск системи і робота в діалоговому режимі'''==
 
=='''Запуск системи і робота в діалоговому режимі'''==
 
На початку запуску автоматично виконується команда '''''matlabrc''''', яка виконує завантажувальний файл '''''matlabrc.m'''''. Цей файл виконує початкове налаштування термінала системи і задає ряд її параметрів. У томі числі, можуть бути вказані шляхи доступу до інших файлів, необхідних для коректної роботи системи.<br>
 
На початку запуску автоматично виконується команда '''''matlabrc''''', яка виконує завантажувальний файл '''''matlabrc.m'''''. Цей файл виконує початкове налаштування термінала системи і задає ряд її параметрів. У томі числі, можуть бути вказані шляхи доступу до інших файлів, необхідних для коректної роботи системи.<br>
 
Сеанс роботи з Matlab прийнято називати ''сесією'' (session). '''''Сесія''''', по суті, являється поточним документом, відображаючим роботу користувача в системі. Вона включає рядки вводу, виводу та повідомлень про помилки. Вхідні в сесію визначення змінних  функцій, розміщених в буфері, але не саму сесію, можна записати на диск (файли формату ''.mat''). Фрагменти сесії можна оформити у вигляді щоденника (за допомогою команди ''diary'').<br>
 
Сеанс роботи з Matlab прийнято називати ''сесією'' (session). '''''Сесія''''', по суті, являється поточним документом, відображаючим роботу користувача в системі. Вона включає рядки вводу, виводу та повідомлень про помилки. Вхідні в сесію визначення змінних  функцій, розміщених в буфері, але не саму сесію, можна записати на диск (файли формату ''.mat''). Фрагменти сесії можна оформити у вигляді щоденника (за допомогою команди ''diary'').<br>
 
Система створена таким чином, що будь-які обчислення можна виконати в режимі прямих обчислень, тобто без підготовки програми. Такий підхід відбувається по правилу «задав питання, отримав відповідь»:<br>
 
Система створена таким чином, що будь-які обчислення можна виконати в режимі прямих обчислень, тобто без підготовки програми. Такий підхід відбувається по правилу «задав питання, отримав відповідь»:<br>
    >> x=1;
+
'''>> x=1''';<br>
    >> cos(x)^2+sin(x)^2
+
'''>> cos(x)^2+sin(x)^2'''<br>
    ans =
+
'''ans ='''<br>
    1
+
'''1'''<br>
    >> 2*log(ans)^3-...
+
'''>> 2*log(ans)^3-5/tan(2*sqrt(4))'''<br>
    5/tan(2*sqrt(4))
+
'''ans ='''<br>
    ans =
+
'''-4.3185'''<br>
    -4.3185
+
'''>> w=2*log(1)^3-5/tan(2*sqrt(4))'''<br>
    >> w=2*log(1)^3-5/tan(2*sqrt(4))
+
'''w ='''<br>
    w =
+
'''-4.3185'''<br><br>
    -4.3185
+
 
З цього лістінгу можна зробити висновки:<br>
 
З цього лістінгу можна зробити висновки:<br>
  
Рядок 27: Рядок 31:
 
<li> Вбудовані функції (наприклад cos) пишуться строковими буквами, а їх аргументи вказуються в круглих дужках;
 
<li> Вбудовані функції (наприклад cos) пишуться строковими буквами, а їх аргументи вказуються в круглих дужках;
 
<li> Результати обчислень виводяться в рядках виводу (без знаку >>);<br><br>
 
<li> Результати обчислень виводяться в рядках виводу (без знаку >>);<br><br>
В деяких випадках зручно записати математичне значення декількома рядками. Це можна зробити використовуючи знак переносу «…» (багатокрапка).
+
В деяких випадках зручно записати математичне значення декількома рядками. Це можна зробити використовуючи знак переносу «…» (багатокрапка).<br><br>
 
=='''Основні об’єкти Matlab'''==
 
=='''Основні об’єкти Matlab'''==
 
Центральним поняттям всіх математичних систем являється математичний вираз. Він задає те, що має бути обчислене в числовому (рідше в символьному) вигляді. Приклади простих математичних виразів:<br>
 
Центральним поняттям всіх математичних систем являється математичний вираз. Він задає те, що має бути обчислене в числовому (рідше в символьному) вигляді. Приклади простих математичних виразів:<br>
    2-4
+
'''2-4''' <br>
    3.256*exp(8)
+
'''3.256*exp(8)'''  <br>
    2+sin(x)/(4*cos(y))
+
'''2+sin(x)/(4*cos(y))'''  <br><br>
Математичні вирази будуються на основі чисел, констант, змінних, операторів, функцій та різних спец знаків.<br>
+
Математичні вирази будуються на основі чисел, констант, змінних, операторів, функцій та різних спец знаків.<br><br>
 
==='''Числа'''===
 
==='''Числа'''===
Число – найпростіший об’єкт мови Matlab, який представляє кількісні дані. Числа можна вважати константами, імена яких співпадають з їх значеннями. Вони можуть бути цілими, дробовими, з фіксованою і плаваючою крапкою. Можливе представлення з вказанням мантиси та порядку числа. В мантисі ціла частина відділяється від дробової комою, а не крапкою. Для відокремлення порядку числа від мантиси використовується символ е.<br>
+
'''Число''' – найпростіший об’єкт мови Matlab, який представляє кількісні дані. Числа можна вважати константами, імена яких співпадають з їх значеннями. Вони можуть бути цілими, дробовими, з фіксованою і плаваючою крапкою. Можливе представлення з вказанням мантиси та порядку числа. В мантисі ціла частина відділяється від дробової комою, а не крапкою. Для відокремлення порядку числа від мантиси використовується символ е.<br>
 
Числа можуть бути комплексними : '''''z = Re(x) + Im(x) * i'''''. Уявна частина має множник i або j, що означає корінь квадратний з -1:<br>
 
Числа можуть бути комплексними : '''''z = Re(x) + Im(x) * i'''''. Уявна частина має множник i або j, що означає корінь квадратний з -1:<br>
    >> i
+
'''>> i'''  <br>
    ans =
+
'''ans =''' <br>
        0 + 1.0000i
+
'''0 + 1.0000i''' <br>
    >> j
+
'''>> j''' <br>
    ans =
+
'''ans''' = <br>
        0 + 1.0000i
+
'''0 + 1.0000i''' <br>
    >> k=3+7i
+
'''>> k=3+7i''' <br>
    k =
+
'''k ='''<br>
    3.0000 + 7.0000i
+
'''3.0000 + 7.0000i'''<br>
    >> real(k)
+
'''>> real(k)'''<br>
    ans =
+
'''ans ='''<br>
    3
+
'''3'''<br>
    >> imag(k)
+
'''>> imag(k)'''<br>
    ans =
+
'''ans ='''<br>
    7
+
'''7'''<br><br>
 
За замовчуванням Matlab повертає числа в короткому записі в форматі з фіксованою комою (5 знаків). Тому при роботі з числовими даними можна задавати різні формати представлення чисел. Але обчислення завжди проводяться в форматі чисел з подвійною точністю. Для установки формату представлення чисел використовується команда<br>
 
За замовчуванням Matlab повертає числа в короткому записі в форматі з фіксованою комою (5 знаків). Тому при роботі з числовими даними можна задавати різні формати представлення чисел. Але обчислення завжди проводяться в форматі чисел з подвійною точністю. Для установки формату представлення чисел використовується команда<br>
    >> format name
+
'''>> format name'''<br>
 
де ''name'' – ім.’я формату. Для числових даних ''name'' може бути наступним:<br><br>
 
де ''name'' – ім.’я формату. Для числових даних ''name'' може бути наступним:<br><br>
Short (default) - Короткий запис в форматі з фіксованою комою (5 знаків)<br>
+
'''Short''' (default) - Короткий запис в форматі з фіксованою комою (5 знаків)<br>
Long         - Довгий запис в форматі з фіксованою комою (15 знаків)<br>
+
'''Long'''         - Довгий запис в форматі з фіксованою комою (15 знаків)<br>
Short e         - Короткий запис в форматі з плаваючою комою (5 знаків +3 знаки порядку)<br>
+
'''Short e'''         - Короткий запис в форматі з плаваючою комою (5 знаків +3 знаки порядку)<br>
Long e         - Довгий запис в форматі з плаваючою комою (15 +3 знаки)<br>
+
'''Long e'''         - Довгий запис в форматі з плаваючою комою (15 +3 знаки)<br>
Hex         - Запис в вигляді шістнадцяткового числа<br>
+
'''Hex'''         - Запис в вигляді шістнадцяткового числа<br>
Bank         - Запис до сотих частин (грошові одиниці)<br>
+
'''Bank'''         - Запис до сотих частин (грошові одиниці)<br>
+         - Записується тільки знак числа<br>
+
'''+'''         - Записується тільки знак числа<br>
Rational - Запис у вигляді раціонального дробу<br><br>
+
'''Rational''' - Запис у вигляді раціонального дробу<br>
 
Число всередині системи зберігається з усіма  введеними цифрами. Виводяться на екран числа у формі встановленого формату. Введене значення і результати обчислень зберігаються з похибкою, що становить приблизно  (точне значення в 15-ти десяткових розрядах). Діапазон дійсних чисел знаходиться в межах від <math>10 ^-308)</math> до <math>10 ^308)</math>.<br><br>
 
Число всередині системи зберігається з усіма  введеними цифрами. Виводяться на екран числа у формі встановленого формату. Введене значення і результати обчислень зберігаються з похибкою, що становить приблизно  (точне значення в 15-ти десяткових розрядах). Діапазон дійсних чисел знаходиться в межах від <math>10 ^-308)</math> до <math>10 ^308)</math>.<br><br>
 
===''' Константи'''===
 
===''' Константи'''===
Константа – наперед визначене числове або символьне значення, представлене унікальним іменем. Числа (наприклад 1, -256 і 0.024) являються безіменними числовими константами. Інші види констант в Matlab прийнято називати системними змінними. Вони задаються системою при завантаженні, але можуть переозначатись. Основні системні змінні:<br><br>
+
'''Константа''' – наперед визначене числове або символьне значення, представлене унікальним іменем. Числа (наприклад 1, -256 і 0.024) являються безіменними числовими константами. Інші види констант в Matlab прийнято називати системними змінними. Вони задаються системою при завантаженні, але можуть переозначатись. Основні системні змінні:<br>
i, j – уявна одиниця;<br>
+
'''i, j''' – уявна одиниця;<br>
Pi – число π (пі);<br>
+
'''Pi''' – число π (пі);<br>
Eps – похибка операцій над числами з плаваючою комою (2-52);<br>  
+
'''Eps''' – похибка операцій над числами з плаваючою комою (2-52);<br>  
Realmin – найменше число з плаваючою комою (2-1022);<br>
+
'''Realmin''' – найменше число з плаваючою комою (2-1022);<br>
Realmax - найбільше число з плаваючою комою (21023);<br>
+
'''Realmax''' - найбільше число з плаваючою комою (21023);<br>
Inf – значення машинної нескінченності;<br>
+
'''Inf''' – значення машинної нескінченності;<br>
Ans – результат останньої операції;<br>
+
'''Ans''' – результат останньої операції;<br>
NaN – вказує на нечисловий характер даних (Not-a-Number);<br><br>
+
'''NaN''' – вказує на нечисловий характер даних (Not-a-Number);<br><br>
    >> 2*pi
+
Наприклад:
    ans =
+
'''>> 2*pi'''<br>
    6.28
+
'''ans ='''<br>
    >> eps %формат bank
+
'''6.28'''<br>
    ans =
+
'''>> eps %формат bank'''<br>
    0.00
+
'''ans ='''<br>
    >> format short e
+
'''0.00'''<br>
    >> eps
+
'''>> format short e'''<br>
    ans =
+
'''>> eps'''<br>
    2.2204e-016
+
'''ans ='''<br>
    >> 1/0
+
'''2.2204e-016'''<br>
    Warning: Divide by zero.
+
'''>> 1/0'''<br>
    ans =
+
'''Warning: Divide by zero.'''<br>
    Inf
+
'''ans ='''<br>
    >> 0/0
+
'''Inf'''<br>
    Warning: Divide by zero.
+
'''>> 0/0'''<br>
    ans =
+
'''Warning: Divide by zero.'''<br>
    NaN
+
'''ans ='''<br>
 +
'''NaN'''<br><br>
 
'''''Символьна константа''''' – це ланцюжок символів, записаних між апострофами, наприклад:<br><br>
 
'''''Символьна константа''''' – це ланцюжок символів, записаних між апострофами, наприклад:<br><br>
    >> '3+cos(z)/log(5)'
+
'''>> '3+cos(z)/log(5)''''<br>
    ans =
+
'''ans ='''<br>
    3+cos(z)/log(5)
+
'''3+cos(z)/log(5)'''<br>
    >> '25.05.2009 о 14:00 - футбол'
+
'''>> '25.05.2009 о 14:00 - футбол''''<br>
    ans =
+
'''ans ='''<br>
    25.05.2009 о 14:00 - футбол
+
'''25.05.2009 о 14:00 - футбол'''<br><br>
 
+
 
==='''Текстові коментарі'''===
 
==='''Текстові коментарі'''===
Оскільки Matlab використовується для достатньо складних обчислень, важливе значення має їх наглядний опис. Це досягається за допомогою текстових коментарів. Коментарі вводяться за допомогою символа %, наприклад так:<br>
+
Оскільки Matlab використовується для достатньо складних обчислень, важливе значення має їх наглядний опис. Це досягається за допомогою текстових коментарів. Коментарі вводяться за допомогою символа '''%''', наприклад так:<br>
    %it is factorial function
+
'''%it is factorial function'''<br><br>
Зазвичай перші рядки m-файлів служать для опису їх призначення, яке виводиться на екран після команди
+
Зазвичай перші рядки m-файлів служать для опису їх призначення, яке виводиться на екран після команди: <br>
    >> help Ім’я_файлу
+
'''>> help Ім’я_файлу'''<br><br>
 
==='''Змінні'''===
 
==='''Змінні'''===
 
'''''Змінні''''' – це іменовані об’єкти, здатні зберігати деякі дані. В залежності від цих даних змінні можуть бути числовими або символьними, векторними або матричними. Щоб присвоїти змінній деяке значення, треба виконати операцію присвоювання:
 
'''''Змінні''''' – це іменовані об’єкти, здатні зберігати деякі дані. В залежності від цих даних змінні можуть бути числовими або символьними, векторними або матричними. Щоб присвоїти змінній деяке значення, треба виконати операцію присвоювання:
    Ім’я_змінної = Вираз
+
'''Ім’я_змінної = Вираз'''<br>
 
Типи змінних наперед не декларуються. Вони приймають тип присвоюваного виразу. Ім’я змінної (її ідентифікатор) може містити яку завгодно кількість символів, але запам’ятовуються і ідентифікуються тільки перші 31.<br> Ім’я має бути унікальним, повинне починатися з букви, може містити букви, цифри та символ підкреслювання _. Недопустимо включать в імена змінних пробіли і спеціальні знаки, наприклад +,-,/,* і т. п.<br>
 
Типи змінних наперед не декларуються. Вони приймають тип присвоюваного виразу. Ім’я змінної (її ідентифікатор) може містити яку завгодно кількість символів, але запам’ятовуються і ідентифікуються тільки перші 31.<br> Ім’я має бути унікальним, повинне починатися з букви, може містити букви, цифри та символ підкреслювання _. Недопустимо включать в імена змінних пробіли і спеціальні знаки, наприклад +,-,/,* і т. п.<br>
В  пам’яті комп’ютера змінні займають місце - робочу область. Для очистки робочої області використовується функція clear:<br>
+
В  пам’яті комп’ютера змінні займають місце - робочу область. Для очистки робочої області використовується функція '''clear''':<br>
    >> clear – знищує означення всіх змінних;
+
'''>> clear''' – знищує означення всіх змінних; <br>
    >> clear x – знищує означення змінної x;
+
'''>> clear x''' – знищує означення змінної x; <br>
    >> clear a, y, z – знищує означення декількох змінних.
+
'''>> clear a, y, z''' – знищує означення декількох змінних. <br><br>
 
==='''Оператори'''===
 
==='''Оператори'''===
Оператор – це спеціальне позначення для певної операції над даними – операндами. Найпростішими арифметичними операторами є знак суми +, віднімання –, множення * та ділення /. Слід відмітити, що більшість операторів відноситься до матричних операцій. Наприклад, оператори множення * та ділення / обчислюють добуток та частку від двох масивів, векторів або матриць. Є ряд спеціальних операторів, наприклад оператор \ означає ділення справа наліво, а оператори .* і ./ означають поелементне множення та поелементне ділення масивів.<br>
+
'''Оператор''' – це спеціальне позначення для певної операції над даними – операндами. Найпростішими арифметичними операторами є знак суми +, віднімання –, множення * та ділення /. Слід відмітити, що більшість операторів відноситься до матричних операцій. Наприклад, оператори множення * та ділення / обчислюють добуток та частку від двох масивів, векторів або матриць. Є ряд спеціальних операторів, наприклад оператор \ означає ділення справа наліво, а оператори .* і ./ означають поелементне множення та поелементне ділення масивів.<br>
 
Дуже часто необхідно виконати формування впорядкованих числових послідовностей. Такі послідовності потрібні для створення векторів чи значень абсциси при побудові графіків. Для цього в Matlab використовується оператор : (двокрапка).<br>
 
Дуже часто необхідно виконати формування впорядкованих числових послідовностей. Такі послідовності потрібні для створення векторів чи значень абсциси при побудові графіків. Для цього в Matlab використовується оператор : (двокрапка).<br>
    Початкове_значення:Крок:Кінцеве_значення;
+
'''Початкове_значення:Крок:Кінцеве_значення;'''<br><br>
 
Дана послідовність створює зростаючу послідовність чисел, котра починається з початкового значення, йде з вказаним кроком і завершується кінцевим значенням. Якщо крок не задано, то по замовчуванню він рівний 1. Якщо початкове значення більше за кінцеве, то виводиться повідомлення про помилку. Приклади застосування даного оператора:<br>
 
Дана послідовність створює зростаючу послідовність чисел, котра починається з початкового значення, йде з вказаним кроком і завершується кінцевим значенням. Якщо крок не задано, то по замовчуванню він рівний 1. Якщо початкове значення більше за кінцеве, то виводиться повідомлення про помилку. Приклади застосування даного оператора:<br>
    >> i=1:4
+
'''>> i=1:4'''<br>
    i =
+
'''i ='''<br>
        1    2    3    4
+
''' 1    2    3    4'''<br>
    >> i=0:0.2:1
+
'''>> i=0:0.2:1'''<br>
    i =
+
'''i ='''<br>
            0    0.2000    0.4000    0.6000    0.8000    1.0000
+
''' 0    0.2000    0.4000    0.6000    0.8000    1.0000'''<br>
    >> j=5:-1:1
+
'''>> j=5:-1:1'''<br>
    j =
+
'''j ='''<br>
        5    4    3    2    1
+
'''5    4    3    2    1'''<br>
    >> 4:2
+
'''>> 4:2'''<br>
    ans =
+
'''ans ='''<br>
      Empty matrix: 1-by-0
+
'''Empty matrix: 1-by-0'''<br><br>
 
Повний список операторів можна отримати виконавши команду<br>
 
Повний список операторів можна отримати виконавши команду<br>
    >> help ops
+
'''>> help ops'''<br><br>
 
==='''Функції'''===
 
==='''Функції'''===
 
'''''Функції''''' – унікально іменовані об’єкти, що виконують визначені перетворення своїх аргументів, і при цьому повертають результати своїх перетворень. Результат обчислення функції з одним вихідним параметром підставляється на місце її визову, що дозоляє використовувати функції в математичних виразах. Функції в загальному випадку мають список аргументів (параметрів). Якщо функція повертає декілька значень, то вона записується у вигляді<br>
 
'''''Функції''''' – унікально іменовані об’єкти, що виконують визначені перетворення своїх аргументів, і при цьому повертають результати своїх перетворень. Результат обчислення функції з одним вихідним параметром підставляється на місце її визову, що дозоляє використовувати функції в математичних виразах. Функції в загальному випадку мають список аргументів (параметрів). Якщо функція повертає декілька значень, то вона записується у вигляді<br>
    [Y1, Y2, …] = func(X1, X2, …)
+
'''[Y1, Y2, …] = func(X1, X2, …)'''<br><br>
 
де Y1, Y2, … - список вихідних параметрів, і X1, X2, … - список вхідних аргументів.<br>
 
де Y1, Y2, … - список вихідних параметрів, і X1, X2, … - список вхідних аргументів.<br>
 
Функції можуть бути ''вбудованими'' і ''зовнішніми'', або m-функціями. Вбудованими є найбільш поширені елементарні функції, наприклад, sin(x) і exp(x), тоді як функція sinh(x) є зовнішньою функцією. Зовнішні функції містять свої означення в m-файлах. Вбудовані функції зберігаються в відкомпільованому ядрі системи Matlab, тому вони виконуються дуже швидко.<br>
 
Функції можуть бути ''вбудованими'' і ''зовнішніми'', або m-функціями. Вбудованими є найбільш поширені елементарні функції, наприклад, sin(x) і exp(x), тоді як функція sinh(x) є зовнішньою функцією. Зовнішні функції містять свої означення в m-файлах. Вбудовані функції зберігаються в відкомпільованому ядрі системи Matlab, тому вони виконуються дуже швидко.<br>
 
Мова програмування системи Matlab пропонує ряд ефективних можливостей для задання функцій користувача. Одна з таких можливостей залючається в застосуванні функції '''''inline''''', аргументом якої треба в апострофах задати вираз, що задає функцію однієї чи декількох змінних. В приведеному прикладі задана функція двох змінних:<br>
 
Мова програмування системи Matlab пропонує ряд ефективних можливостей для задання функцій користувача. Одна з таких можливостей залючається в застосуванні функції '''''inline''''', аргументом якої треба в апострофах задати вираз, що задає функцію однієї чи декількох змінних. В приведеному прикладі задана функція двох змінних:<br>
    >> func1=inline('sin(x).^2+cos(y).^2')
+
'''>> func1=inline('sin(x).^2+cos(y).^2')'''<br>
    func1 =
+
'''func1 ='''<br>
        Inline function:
+
'''Inline function:'''<br>
        func1(x,y) = sin(x).^2+cos(y).^2
+
'''func1(x,y) = sin(x).^2+cos(y).^2'''<br>
    >> func1(1,0)
+
'''>> func1(1,0)'''<br>
    ans =
+
'''ans ='''<br>
        1.7081
+
'''1.7081'''<br><br>
 
Можна також задавати свої функції у вигляді m-файлів. У вікні редактора  
 
Можна також задавати свої функції у вигляді m-файлів. У вікні редактора  
m-файлів (File – Nev – M-File) створити m-файл з ім’ям func3 і лістингом:
+
m-файлів (File – Nev – M-File) створити m-файл з ім’ям func3 і лістингом:<br>
    function y=func3(x,y)
+
'''function y=func3(x,y)'''<br>
    y=sin(x).^2+cos(y).^2
+
'''y=sin(x).^2+cos(y).^2'''<br><br>
 
Записавши його на диск, командою<br>
 
Записавши його на диск, командою<br>
    type func3
+
'''type func3'''<br>
 
можна вивести лістинг функції. Звертання до функції відбувається як до звичайної, підставляємо в список параметрів потрібні змінні.<br>
 
можна вивести лістинг функції. Звертання до функції відбувається як до звичайної, підставляємо в список параметрів потрібні змінні.<br>
 
=='''Формування векторів і матриць'''==
 
=='''Формування векторів і матриць'''==
 
'''''Matlab''''' – система, спеціально призначена для проведення складних обчислень над векторами, матрицями та масивами – в томі числі багатовимірними. При цьому вона по замовчуванню вважає, що кожна задана змінна – це вектор, матриця або масив. Все визначається конкретним значенням змінної. Наприклад, якщо задано x=1, то це значить, що x – це вектор з єдиним елементом, що приймає значення 1. Якщо треба задати вектор із декількох елементів, то їх значення варто перечислити в квадратних дужках, відокремлюючи пробілами. Наприклад, присвоювання<br>
 
'''''Matlab''''' – система, спеціально призначена для проведення складних обчислень над векторами, матрицями та масивами – в томі числі багатовимірними. При цьому вона по замовчуванню вважає, що кожна задана змінна – це вектор, матриця або масив. Все визначається конкретним значенням змінної. Наприклад, якщо задано x=1, то це значить, що x – це вектор з єдиним елементом, що приймає значення 1. Якщо треба задати вектор із декількох елементів, то їх значення варто перечислити в квадратних дужках, відокремлюючи пробілами. Наприклад, присвоювання<br>
    >> V = [1 2 3 4]
+
'''>> V = [1 2 3 4]'''<br>
    V =
+
'''V ='''<br>
        1    2    3    4
+
'''1    2    3    4'''<br><br>
 
Задає вектор V,  що має 4 елементи.<br>
 
Задає вектор V,  що має 4 елементи.<br>
Для визначення матриці треба вказати декілька рядків. Для їх відокремлення слугує знак ; (крапка з комою). Ввід<br>
+
Для визначення матриці треба вказати декілька рядків. Для їх відокремлення слугує знак ''';''' (крапка з комою). Ввід<br>
    >> M=[1 2 3;3 2 4; 0 3 0]
+
'''>> M=[1 2 3;3 2 4; 0 3 0]'''<br>
    M =
+
'''M ='''<br>
        1    2    3
+
'''1    2    3'''<br>
        3    2    4
+
'''3    2    4'''<br>
        0    3    0
+
'''0    3    0'''<br><br>
 
задає квадратну матрицю. Також можливо вводити елементи матриць та векторів у вигляді арифметичних виразів, що містять будь-які доступні для системи функції.<br>
 
задає квадратну матрицю. Також можливо вводити елементи матриць та векторів у вигляді арифметичних виразів, що містять будь-які доступні для системи функції.<br>
 
Для вказання окремого елемента вектора чи матриці використовуються вирази виду V(k) чи M(i, j). Наприклад, якщо задати<br>
 
Для вказання окремого елемента вектора чи матриці використовуються вирази виду V(k) чи M(i, j). Наприклад, якщо задати<br>
    >> M(3, 2)
+
'''>> M(3, 2)'''<br>
    ans =
+
'''ans ='''<br>
        3
+
'''3'''<br><br>
 
Якщо треба присвоїти елементу нове значення, треба записати<br>
 
Якщо треба присвоїти елементу нове значення, треба записати<br>
    >> M(3, 2)=10
+
'''>> M(3, 2)=10'''<br>
    M =
+
'''M ='''<br>
        1    2    3
+
'''1    2    3'''<br>
        3    2    4
+
'''3    2    4'''<br>
        0    10    0
+
'''0    10    0'''<br><br>
 
Вираз M(i) з одним індексом дає доступ до елементів матриці, розвернутим в один стовпчик. Така матриця отримується, якщо в початковій записати стовпці підряд. Це ілюструє наступний приклад.<br>
 
Вираз M(i) з одним індексом дає доступ до елементів матриці, розвернутим в один стовпчик. Така матриця отримується, якщо в початковій записати стовпці підряд. Це ілюструє наступний приклад.<br>
    >> M=[1 2 3;4 5 6;7 8 9]
+
'''>> M=[1 2 3;4 5 6;7 8 9]'''<br>
    M =
+
'''M ='''<br>
        1    2    3
+
'''1    2    3'''<br>
        4    5    6
+
'''4    5    6'''<br>
        7    8    9
+
'''7    8    9'''<br>
    >> M(2)
+
'''>> M(2)'''<br>
    ans =
+
'''ans ='''<br>
        4
+
'''4'''<br>
    >> M(8)
+
'''>> M(8)'''<br>
    ans =
+
'''ans ='''<br>
        6
+
'''6'''<br><br>
 
Можна задавати вектори і матриці з комплексними елементами, наприклад:<br>
 
Можна задавати вектори і матриці з комплексними елементами, наприклад:<br>
    >> i=sqrt(-1);
+
'''>> i=sqrt(-1);'''<br>
    >> CM=[1 2;3 4]+i*[5 6;7 8]
+
'''>> CM=[1 2;3 4]+i*[5 6;7 8]'''<br>
    CM =
+
'''CM ='''<br>
      1.0000 + 5.0000i  2.0000 + 6.0000i
+
'''1.0000 + 5.0000i  2.0000 + 6.0000i'''<br>
      3.0000 + 7.0000i  4.0000 + 8.0000i
+
'''3.0000 + 7.0000i  4.0000 + 8.0000i'''<br><br>
Поряд з операціями над окремими елементами матриць і векторів система дозволяє виконувати операції множення, ділення та піднесення до степеня зразу над всіма елементами, тобто над масивами. Для цього перед знаком операції ставиться крапка (.*, ./, .^). Існує також ряд спеціальних функцій для задання векторів та матриць. Наприклад, функція magiс(n) задає магічну матрицю n×n.<br>
+
Поряд з операціями над окремими елементами матриць і векторів система дозволяє виконувати операції множення, ділення та піднесення до степеня зразу над всіма елементами, тобто над масивами. Для цього перед знаком операції ставиться крапка (.*, ./, .^). Існує також ряд спеціальних функцій для задання векторів та матриць. Наприклад, функція '''magiс(n)''' задає магічну матрицю n×n.<br>
 
Для формування матриць і виконання ряду матричних операцій виникає необхідність видалення окремих стовпців і рядків матриці. Для цього використовується пусті квадратні дужки. Видалимо другий стовпчик матриці A<br>
 
Для формування матриць і виконання ряду матричних операцій виникає необхідність видалення окремих стовпців і рядків матриці. Для цього використовується пусті квадратні дужки. Видалимо другий стовпчик матриці A<br>
    >> A=[1 1 1;2 2 2;3 3 3]
+
'''>> A=[1 1 1;2 2 2;3 3 3]'''<br>
    A =
+
'''A ='''<br>
        1    1    1
+
'''1    1    1'''<br>
        2    2    2
+
'''2    2    2'''<br>
        3    3    3
+
'''3    3    3'''<br>
    >> A(:,2)=[]
+
'''>> A(:,2)=[]'''<br>
    A =
+
'''A ='''<br>
        1    1
+
'''1    1'''<br>
        2    2
+
'''2    2'''<br>
        3    3
+
'''3    3'''<br><br>
 
Тепер видалимо третій рядок:<br>
 
Тепер видалимо третій рядок:<br>
    >> A(3,:)=[]
+
'''>> A(3,:)=[]'''<br>
    A =
+
'''A ='''<br>
        1    1
+
'''1    1'''<br>
        2    2
+
'''2    2'''<br><br>
=='''Питання'''==
+
 
1. Що означає назва MatLab?<br>
+
а) Mathematic Label<br>
+
б) Matrix Laboratory<br>
+
в) Mathematic Laboratory<br>
+
г) Matrix Label<br><br>
+
2. Початкове налаштування термінала системи забезпечує:<br>
+
а) Операційна система<br>
+
б) фаqл matlabrc.m<br>
+
в) файл boot.m<br>
+
г) користувач<br><br>
+
3. Вихідними даними виразу ''>>-4'' буде:<br>
+
а) -4<br>
+
б) ans = -4<br>
+
в) x = -4<br>
+
г) інший варіант<br><br>
+
4.У виразі ''>> k = 3.025 + 7.5i'' ми отримаємо<br>
+
а) к = 3.0250 + 7.5000i<br>
+
б) ans = 3.0250 + 7.5000i<br>
+
в) помилку, змінна i не означена<br>
+
г) інша відповідь<br><br>
+
5. рядок ''>> word = 'cos(0)';'' означає:<br>
+
а) виведеться word = 1<br>
+
б) змінній word присвоїться значення 1, але виводу не буде<br>
+
в) змінна word - текстова<br>
+
г) отримаємо вивід word = cos(0)<br><br>
+
6) рядок >> ''1024bytes = 1024'' означає:<br>
+
а) змінній 1024bytes присвоїться значення 1024, вивід на екран<br>
+
б) змінній 1024bytes присвоїться значення 1024, без виводу на екран<br>
+
г) отримаємо синтаксичну помилку<br>
+
д) інший варіант<br><br>
+
7. >> func1=inline('sin(x) + cos(y)'); func1(2*pi,0) дасть результат:<br>
+
а) помилка<br>
+
б) 1<br>
+
в) 0<br>
+
г) власний варіант(опишіть)<br><br>
+
  
 
[[category:Теорія систем та математичне моделювання]]
 
[[category:Теорія систем та математичне моделювання]]

Версія за 20:09, 10 травня 2012

Історична довідка

MATLAB як мова програмування була розроблена Клівом Моулером (англ. Cleve Moler) наприкінці 1970-х років, коли він був деканом факультету комп'ютерних наук в Університеті Нью-Мексико.
Метою розробки служила задача дати студентам факультету можливість використання програмних бібліотек Linpack і EISPACK без необхідності вивчення Фортрану. Незабаром нова мова поширилася серед інших університетів і була з великим інтересом зустрінутий вченими, що працюють в області прикладної математики.
До цих пір в Інтернеті можна знайти версію 1982 року, написану на Фортрані, поширювану з відкритим вихідним кодом. Інженер Джон Літтл (англ. John N. (Jack) Little) познайомився з цією мовою під час візиту Клива Моулера в Стенфордський університет в 1983 році. Зрозумівши, що нова мова володіє великим комерційним потенціалом, він об'єднався з Клівом Моулером і Стівом Бангертом (англ. Steve Bangert). Спільними зусиллями вони переписали MATLAB на C і заснували в 1984 компанію The MathWorks для подальшого розвитку. Ці переписані на С бібліотеки довгий час були відомі під ім'ям JACKPAC.
Спочатку MATLAB призначався для проектування систем управління (основна спеціальність Джона Літтла), але швидко завоював популярність у багатьох інших наукових і інженерних областях. Він також широко використовувався і в освіті, зокрема, для викладання лінійної алгебри та чисельних методів.

Про MatLab

MatLab – одна з найстаріших, ретельно пророблених і провірених часом систем автоматизації математичних розрахунків, побудована на розширеному представленні і застосуванні матричних операцій. Звідси й пішла назва системи – MATrix LABoratory – матрична лабораторія.
Matlab поставляється як комплекс Matlab + Simulink + Toolbox + Blockset, де розділами системи Toolbox і Blockset корпорація MathWorks називає пакети розширення для систем Matlab і Simulink, відповідно.
Однією із основних задач системи Matlab завжди було надання користувачам потужної мови програмування, орієнтованої на технічні і математичні розрахунки і здатної перевершити можливості традиційних мов програмування, котрі багато років використовувались для реалізації чисельних методів. При цьому особлива увага приділялась як підвищенню швидкості обчислень, так і адаптації системи до розв’язку самих різноманітних задач користувачів.

Запуск системи і робота в діалоговому режимі

На початку запуску автоматично виконується команда matlabrc, яка виконує завантажувальний файл matlabrc.m. Цей файл виконує початкове налаштування термінала системи і задає ряд її параметрів. У томі числі, можуть бути вказані шляхи доступу до інших файлів, необхідних для коректної роботи системи.
Сеанс роботи з Matlab прийнято називати сесією (session). Сесія, по суті, являється поточним документом, відображаючим роботу користувача в системі. Вона включає рядки вводу, виводу та повідомлень про помилки. Вхідні в сесію визначення змінних функцій, розміщених в буфері, але не саму сесію, можна записати на диск (файли формату .mat). Фрагменти сесії можна оформити у вигляді щоденника (за допомогою команди diary).
Система створена таким чином, що будь-які обчислення можна виконати в режимі прямих обчислень, тобто без підготовки програми. Такий підхід відбувається по правилу «задав питання, отримав відповідь»:
>> x=1;
>> cos(x)^2+sin(x)^2
ans =
1
>> 2*log(ans)^3-5/tan(2*sqrt(4))
ans =
-4.3185
>> w=2*log(1)^3-5/tan(2*sqrt(4))
w =
-4.3185

З цього лістінгу можна зробити висновки:

  • Для вказання вводу початкових даних використовується символ >>;
  • Дані вводяться за допомогою простого строкового редактора;
  • Для блокування виводу результату обчислень деякого виразу, після нього треба ставити знак ; (крапка з комою);
  • Якщо не вказана змінна для значення результату обчислень, то Matlab автоматично назначить змінну ans;
  • Знаком присвоєння є звичний математичний знак = ;
  • Вбудовані функції (наприклад cos) пишуться строковими буквами, а їх аргументи вказуються в круглих дужках;
  • Результати обчислень виводяться в рядках виводу (без знаку >>);

    В деяких випадках зручно записати математичне значення декількома рядками. Це можна зробити використовуючи знак переносу «…» (багатокрапка).

    Основні об’єкти Matlab

    Центральним поняттям всіх математичних систем являється математичний вираз. Він задає те, що має бути обчислене в числовому (рідше в символьному) вигляді. Приклади простих математичних виразів:
    2-4
    3.256*exp(8)
    2+sin(x)/(4*cos(y))

    Математичні вирази будуються на основі чисел, констант, змінних, операторів, функцій та різних спец знаків.

    Числа

    Число – найпростіший об’єкт мови Matlab, який представляє кількісні дані. Числа можна вважати константами, імена яких співпадають з їх значеннями. Вони можуть бути цілими, дробовими, з фіксованою і плаваючою крапкою. Можливе представлення з вказанням мантиси та порядку числа. В мантисі ціла частина відділяється від дробової комою, а не крапкою. Для відокремлення порядку числа від мантиси використовується символ е.
    Числа можуть бути комплексними : z = Re(x) + Im(x) * i. Уявна частина має множник i або j, що означає корінь квадратний з -1:
    >> i
    ans =
    0 + 1.0000i
    >> j
    ans =
    0 + 1.0000i
    >> k=3+7i
    k =
    3.0000 + 7.0000i
    >> real(k)
    ans =
    3
    >> imag(k)
    ans =
    7

    За замовчуванням Matlab повертає числа в короткому записі в форматі з фіксованою комою (5 знаків). Тому при роботі з числовими даними можна задавати різні формати представлення чисел. Але обчислення завжди проводяться в форматі чисел з подвійною точністю. Для установки формату представлення чисел використовується команда
    >> format name
    де name – ім.’я формату. Для числових даних name може бути наступним:

    Short (default) - Короткий запис в форматі з фіксованою комою (5 знаків)
    Long - Довгий запис в форматі з фіксованою комою (15 знаків)
    Short e - Короткий запис в форматі з плаваючою комою (5 знаків +3 знаки порядку)
    Long e - Довгий запис в форматі з плаваючою комою (15 +3 знаки)
    Hex - Запис в вигляді шістнадцяткового числа
    Bank - Запис до сотих частин (грошові одиниці)
    + - Записується тільки знак числа
    Rational - Запис у вигляді раціонального дробу
    Число всередині системи зберігається з усіма введеними цифрами. Виводяться на екран числа у формі встановленого формату. Введене значення і результати обчислень зберігаються з похибкою, що становить приблизно (точне значення в 15-ти десяткових розрядах). Діапазон дійсних чисел знаходиться в межах від Неможливо розібрати вираз (невідома помилка): 10 ^-308)

    до Неможливо розібрати вираз (невідома помилка): 10 ^308)
    

    .

    Константи

    Константа – наперед визначене числове або символьне значення, представлене унікальним іменем. Числа (наприклад 1, -256 і 0.024) являються безіменними числовими константами. Інші види констант в Matlab прийнято називати системними змінними. Вони задаються системою при завантаженні, але можуть переозначатись. Основні системні змінні:
    i, j – уявна одиниця;
    Pi – число π (пі);
    Eps – похибка операцій над числами з плаваючою комою (2-52);
    Realmin – найменше число з плаваючою комою (2-1022);
    Realmax - найбільше число з плаваючою комою (21023);
    Inf – значення машинної нескінченності;
    Ans – результат останньої операції;
    NaN – вказує на нечисловий характер даних (Not-a-Number);

    Наприклад: >> 2*pi
    ans =
    6.28
    >> eps %формат bank
    ans =
    0.00
    >> format short e
    >> eps
    ans =
    2.2204e-016
    >> 1/0
    Warning: Divide by zero.
    ans =
    Inf
    >> 0/0
    Warning: Divide by zero.
    ans =
    NaN

    Символьна константа – це ланцюжок символів, записаних між апострофами, наприклад:

    >> '3+cos(z)/log(5)'
    ans =
    3+cos(z)/log(5)
    >> '25.05.2009 о 14:00 - футбол'
    ans =
    25.05.2009 о 14:00 - футбол

    Текстові коментарі

    Оскільки Matlab використовується для достатньо складних обчислень, важливе значення має їх наглядний опис. Це досягається за допомогою текстових коментарів. Коментарі вводяться за допомогою символа %, наприклад так:
    %it is factorial function

    Зазвичай перші рядки m-файлів служать для опису їх призначення, яке виводиться на екран після команди:
    >> help Ім’я_файлу

    Змінні

    Змінні – це іменовані об’єкти, здатні зберігати деякі дані. В залежності від цих даних змінні можуть бути числовими або символьними, векторними або матричними. Щоб присвоїти змінній деяке значення, треба виконати операцію присвоювання: Ім’я_змінної = Вираз
    Типи змінних наперед не декларуються. Вони приймають тип присвоюваного виразу. Ім’я змінної (її ідентифікатор) може містити яку завгодно кількість символів, але запам’ятовуються і ідентифікуються тільки перші 31.
    Ім’я має бути унікальним, повинне починатися з букви, може містити букви, цифри та символ підкреслювання _. Недопустимо включать в імена змінних пробіли і спеціальні знаки, наприклад +,-,/,* і т. п.
    В пам’яті комп’ютера змінні займають місце - робочу область. Для очистки робочої області використовується функція clear:
    >> clear – знищує означення всіх змінних;
    >> clear x – знищує означення змінної x;
    >> clear a, y, z – знищує означення декількох змінних.

    Оператори

    Оператор – це спеціальне позначення для певної операції над даними – операндами. Найпростішими арифметичними операторами є знак суми +, віднімання –, множення * та ділення /. Слід відмітити, що більшість операторів відноситься до матричних операцій. Наприклад, оператори множення * та ділення / обчислюють добуток та частку від двох масивів, векторів або матриць. Є ряд спеціальних операторів, наприклад оператор \ означає ділення справа наліво, а оператори .* і ./ означають поелементне множення та поелементне ділення масивів.
    Дуже часто необхідно виконати формування впорядкованих числових послідовностей. Такі послідовності потрібні для створення векторів чи значень абсциси при побудові графіків. Для цього в Matlab використовується оператор : (двокрапка).
    Початкове_значення:Крок:Кінцеве_значення;

    Дана послідовність створює зростаючу послідовність чисел, котра починається з початкового значення, йде з вказаним кроком і завершується кінцевим значенням. Якщо крок не задано, то по замовчуванню він рівний 1. Якщо початкове значення більше за кінцеве, то виводиться повідомлення про помилку. Приклади застосування даного оператора:
    >> i=1:4
    i =
    1 2 3 4
    >> i=0:0.2:1
    i =
    0 0.2000 0.4000 0.6000 0.8000 1.0000
    >> j=5:-1:1
    j =
    5 4 3 2 1
    >> 4:2
    ans =
    Empty matrix: 1-by-0

    Повний список операторів можна отримати виконавши команду
    >> help ops

    Функції

    Функції – унікально іменовані об’єкти, що виконують визначені перетворення своїх аргументів, і при цьому повертають результати своїх перетворень. Результат обчислення функції з одним вихідним параметром підставляється на місце її визову, що дозоляє використовувати функції в математичних виразах. Функції в загальному випадку мають список аргументів (параметрів). Якщо функція повертає декілька значень, то вона записується у вигляді
    [Y1, Y2, …] = func(X1, X2, …)

    де Y1, Y2, … - список вихідних параметрів, і X1, X2, … - список вхідних аргументів.
    Функції можуть бути вбудованими і зовнішніми, або m-функціями. Вбудованими є найбільш поширені елементарні функції, наприклад, sin(x) і exp(x), тоді як функція sinh(x) є зовнішньою функцією. Зовнішні функції містять свої означення в m-файлах. Вбудовані функції зберігаються в відкомпільованому ядрі системи Matlab, тому вони виконуються дуже швидко.
    Мова програмування системи Matlab пропонує ряд ефективних можливостей для задання функцій користувача. Одна з таких можливостей залючається в застосуванні функції inline, аргументом якої треба в апострофах задати вираз, що задає функцію однієї чи декількох змінних. В приведеному прикладі задана функція двох змінних:
    >> func1=inline('sin(x).^2+cos(y).^2')
    func1 =
    Inline function:
    func1(x,y) = sin(x).^2+cos(y).^2
    >> func1(1,0)
    ans =
    1.7081

    Можна також задавати свої функції у вигляді m-файлів. У вікні редактора m-файлів (File – Nev – M-File) створити m-файл з ім’ям func3 і лістингом:
    function y=func3(x,y)
    y=sin(x).^2+cos(y).^2

    Записавши його на диск, командою
    type func3
    можна вивести лістинг функції. Звертання до функції відбувається як до звичайної, підставляємо в список параметрів потрібні змінні.

    Формування векторів і матриць

    Matlab – система, спеціально призначена для проведення складних обчислень над векторами, матрицями та масивами – в томі числі багатовимірними. При цьому вона по замовчуванню вважає, що кожна задана змінна – це вектор, матриця або масив. Все визначається конкретним значенням змінної. Наприклад, якщо задано x=1, то це значить, що x – це вектор з єдиним елементом, що приймає значення 1. Якщо треба задати вектор із декількох елементів, то їх значення варто перечислити в квадратних дужках, відокремлюючи пробілами. Наприклад, присвоювання
    >> V = [1 2 3 4]
    V =
    1 2 3 4

    Задає вектор V, що має 4 елементи.
    Для визначення матриці треба вказати декілька рядків. Для їх відокремлення слугує знак ; (крапка з комою). Ввід
    >> M=[1 2 3;3 2 4; 0 3 0]
    M =
    1 2 3
    3 2 4
    0 3 0

    задає квадратну матрицю. Також можливо вводити елементи матриць та векторів у вигляді арифметичних виразів, що містять будь-які доступні для системи функції.
    Для вказання окремого елемента вектора чи матриці використовуються вирази виду V(k) чи M(i, j). Наприклад, якщо задати
    >> M(3, 2)
    ans =
    3

    Якщо треба присвоїти елементу нове значення, треба записати
    >> M(3, 2)=10
    M =
    1 2 3
    3 2 4
    0 10 0

    Вираз M(i) з одним індексом дає доступ до елементів матриці, розвернутим в один стовпчик. Така матриця отримується, якщо в початковій записати стовпці підряд. Це ілюструє наступний приклад.
    >> M=[1 2 3;4 5 6;7 8 9]
    M =
    1 2 3
    4 5 6
    7 8 9
    >> M(2)
    ans =
    4
    >> M(8)
    ans =
    6

    Можна задавати вектори і матриці з комплексними елементами, наприклад:
    >> i=sqrt(-1);
    >> CM=[1 2;3 4]+i*[5 6;7 8]
    CM =
    1.0000 + 5.0000i 2.0000 + 6.0000i
    3.0000 + 7.0000i 4.0000 + 8.0000i

    Поряд з операціями над окремими елементами матриць і векторів система дозволяє виконувати операції множення, ділення та піднесення до степеня зразу над всіма елементами, тобто над масивами. Для цього перед знаком операції ставиться крапка (.*, ./, .^). Існує також ряд спеціальних функцій для задання векторів та матриць. Наприклад, функція magiс(n) задає магічну матрицю n×n.
    Для формування матриць і виконання ряду матричних операцій виникає необхідність видалення окремих стовпців і рядків матриці. Для цього використовується пусті квадратні дужки. Видалимо другий стовпчик матриці A
    >> A=[1 1 1;2 2 2;3 3 3]
    A =
    1 1 1
    2 2 2
    3 3 3
    >> A(:,2)=[]
    A =
    1 1
    2 2
    3 3

    Тепер видалимо третій рядок:
    >> A(3,:)=[]
    A =
    1 1

    2 2