MATLAB
MATLAB | |
![]() | |
Информация | |
---|---|
Последна версия | R2016a |
Операционна система | многоплатформен |
Лиценз | платен |
Уебсайт | MATLAB |
MATLAB в Общомедия |
MATLAB (на български се произнася „Матлаб“) е съкращение от „MATrix LABoratory“ (на български: „матрична лаборатория“) и е софтуерна среда за числов анализ и самостоятелен програмен език от четвърто поколение. Създадена от многонационалната корпорация за софтуер за технически приложения "The MathWorks", MATLAB позволява операции над матрици, изчертаване на функции и представяне на данни, програмна реализация на алгоритми, разработка на човеко-машинни интерфейси и интерфейси с други програмни продукти, написани на различни програмни езици като C++ и FORTRAN.
По твърдения на компанията-производител от 2004 година MATLAB се използва от над 1 милион потребители от академичните среди и бизнеса и намира приложение в разнообразни области като инженерство, наука, икономика и др. Измежду организациите - потребители на MATLAB - са Масачузетския технологичен институт, НАСА, Обществото "Макс Планк", Университетът в Аахен, "Боинг", "Локхийд-Мартин", "Моторола", "Новартис", "Файзър", "Тойота", "Форд мотор къмпани", "УниКредит банк" и много други.
Команди
- sum - използва се за сумиране на елементите на дадена променлива;
- mean - използва се за намиране на средната аритметична стойност между няколко елемента;
- max - отделя максималния елемент (число) от дадена матрица;
- min - отделя минималния елемент (число) от дадена матрица;
- rot90 - завърта елементите на матрицата на деветдесет градуса - тогава вторичният диагонал става допълнителен, а елементът от първия ред и първия стълб остава на първия ред, но е в последния стълб.
История
Клив Молер, председател на отдела за компютърни науки в Университета на Ню Мексико, започва да разработва MATLAB в края на 70-те години. Той го проектира с цел да предостави достъп на студентите си до Linpack и EISPACK без да се налага да учат Fortan. И скоро след това се разпространи и в други университети, като привлича вниманието на математическата общност.Инженерът Джак Литъл бил заинтересован от MATLAB по време на посещение на Молер до Станфордския университет през 1983 г. Осъзнавайки търговския потенциал, той се присъединява към Молер и Стив Бангерт. Те пренаписаха MATLAB на C (език за програмиране) и основават MathWorks през 1984 г. Тези пренаписани библиотеки са били известни като JACKPAC. През 2000 г., MATLAB е пренаписана, за да използвате по-нов набор от библиотеки за манипулация матрици, LAPACK.
MATLAB първо бе приет от изследователи и практици в системи за управление, но бързо се разпространява в много други области. Сега се използва също и в областта на образованието, по-специално за преподаването на линейна алгебра, числени методи, и е популярен сред учените, участващи в обработката на изображения.
Синтаксис
Приложението MATLAB е изграден около скриптов език MATLAB. Общата употреба на MATLAB включва използването на Command Window като интерактивен математически shell или изпълнение на текстови файлове, съдържащи MATLAB код.
Променливи
Променливи се дефинират с помощта на оператора за присвояване, =. MATLAB е слабо типизиран език за програмиране, тъй като типовете се преобразуват имплицитно. Променливите могат да бъдат декларирани без обявяване техния тип, освен ако те трябва да бъдат третирани като обекти, и че техният вид може да се промени. Стойностите могат да идват от константи, от изчисления включващи стойности на други променливи, или от изхода на функция. Например:
>> x = 17
x =
17
>> x = 'hat'
x =
hat
>> y = x + 0
y =
104 97 116
>> x = [3*4, pi/2]
x =
12.0000 1.5708
>> y = 3*sin(x)
y =
-1.6097 3.0000
Вектори и матрици
Един масив можем да дефинираме с помощта на синтаксиса :
начална стойност: стойност на увеличение: крайна стойност. Например:
>> array = 1:2:9
array =
1 3 5 7 9
Дефиниране на променлива с име array, който е масив, състоящ се от стойностите 1, 3, 5, 7 и 9. Началната стойност на масива е 1, всяка стойност се увеличава със 2(стойността на увеличение), и спира, след като тя достига (или да се избегне превишаването) 9 (крайна стойност).
>> array = 1:3:9
array =
1 4 7
Стойността на увеличение може да не бъде дефинирана в синтаксиса, по подразбиране тя е 1.
>> ari = 1:5
ari =
1 2 3 4 5
Матриците могат да бъдат дефинирани чрез отделяне на елементите на един ред с празно място или запетая, и се използва точка и запетая за преминаване на следващият ред. Списъкът на елементи трябва да бъде заобиколена от квадратни скоби: []. Скоби: () се използват за да се достъпи елемент.
>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
>> A(2,3)
ans =
11
Със следния синтаксис по-долу можем да вземем част от матрица от 2-ри до 4-ти ред и от 3-та до 4-та колона.
>> A(2:4,3:4)
ans =
11 8
7 12
14 1
Функцията eye генерира идентична матрица (матрица с единици по диагонала, нули навсякъде другаде). Идентичната матрица е винаги квадратна и приема само един аргумент. Функциите zeros и ones могат да генерита матрици с различен размер съдържащи само нули или единици.
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
>> zeros(2,3)
ans =
0 0 0
0 0 0
>> ones(2,3)
ans =
1 1 1
1 1 1
Повечето функции в MATLAB могат да приемат матрици и ще се прилагат по отношение на всеки елемент. Например, mod (2 * J, n) ще умножи всеки елемент в "J" по 2, и след това ще намали всеки елемент по модул "n". MATLAB не включва стандартните "for" и "while" цикли, но (както и в други подобни приложения като R), като се използва векторнa нотация често се произвежда код, който е по-бърз да се изпълни. Този код, откъс от функцията magic.m, създава магически квадрат M за нечетни стойности на n (MATLAB функция meshgrid се използва тук, за да генерира квадратни матрици I и J, съдържащи 1: N).
[J,I] = meshgrid(1:n);
A = mod(I + J - (n + 3) / 2, n);
B = mod(I + 2 * J - 2, n);
M = n * A + B + 1;
Графика и графичен потребителски интерфейс за програмиране
MATLAB поддържа разработване на приложения с графичен потребителски интерфейс (GUI). MATLAB включва GUIDE (GUI среда за разработка) за графичен дизайн GUIs. Също така има и функции за изчертаване на графики. Пример, функцията plot може да възпроизведе графика от два вектора x и y. Кодът:
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
възпроизвежда следната графика на синусова функция:

MATLAB може да възпроизвежда триизмерни графики посредством функциите surf, plot3 или mesh.
[X,Y] = meshgrid(-10:0.25:10,-10:0.25:10);
f = sinc(sqrt((X/pi).^2+(Y/pi).^2));
mesh(X,Y,f);
axis([-10 10 -10 10 -0.3 1])
xlabel('{\bfx}')
ylabel('{\bfy}')
zlabel('{\bfsinc} ({\bfR})')
hidden off
Този код възпроизвежда триизмерна мрежова графика:

[X,Y] = meshgrid(-10:0.25:10,-10:0.25:10);
f = sinc(sqrt((X/pi).^2+(Y/pi).^2));
surf(X,Y,f);
axis([-10 10 -10 10 -0.3 1])
xlabel('{\bfx}')
ylabel('{\bfy}')
zlabel('{\bfsinc} ({\bfR})')
Този код възпроизвежда триизмерна повърхнинна графика:
