2. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 2
1
Вовед во
1. Вовед
2. Работна околина
MATLAB 3. Променливи и задавање
вредности
Запознавање со
основните поими,
работната околина и
едноставна употреба на
MATLAB. 4. Изрази
5. Знаци и кодирање
6. Вектори и матрици
4. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 4
Типови/класи во MATLAB
Секој израз или променлива е од одреден тип (класа).
Тип/класа
реални броеви (пр. 5.3) single и double.
цели броеви int8, int16, int32 и int64
цели броеви, без знак uint8, uint16, uint32 и uint64
единечни знаци (characters) char
(пр.„x“) или секвенца знаци
(string)(пр.„broj“)
Подразбиран (default) тип за броеви во MATLAB е double.
Можно е, по потреба, да се врши конверзија на вредностите
од еден во друг вид (type casting)
7. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 7
Знаци и кодирање
8. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 8
1.6. ВЕКТОРИ И МАТРИЦИ
... од аспект на MATLAB
9. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 9
Вектори и матрици
Преставуваат групи/сетови на вредности од ист тип.
Векторите можат да бидат во вид на ред (row) или колона
(column). Матриците се табели од вредности со димензии
𝑟 × 𝑐. Скаларите се матрици со димензии 1 × 1.
Значи векторите и скаларите се само специјални видови на
матрици. Може да се каже дека во MATLAB сé е матрица!
10. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 10
Креирање на ред-вектори
Постојат повеќе начини за креирање ред-вектори.
Најдиректен начин е со ставање на вредностите на
елементите од векторот во средни загради, одвоени со
празно место или запирка:
11. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 11
Креирање на ред-вектори 2
Користење на знакот „:“ (две точки - colon)
Знакот „:“ може да се користи за
креирање вектори со рамноме-
рно распределени елементи (при
што не се потребни средните
загради):
Може да се посочи и големината
на „чекорот“, односно разликата
меѓеу елементите на векторот
12. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 12
Креирање на ред-вектори 3
Вектор може да се креира и од веќе дефинираните вектори:
Оваа операција може да се нарече „поврзување“ или
„комбинирање“ (concatenating)
13. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 13
Повикување на елементите од векторите 1
Елемените на секој вектор се нумерираат секвенционално
почнувајќи од бројот 1. Бројот на секој елемент се вика
индекс.
На пример, новокреираниот вектор од претходниот пример:
индекс 1 2 3 4 5 6 7 8 9
1 2 3 4 1 3 5 7 9
Може да пристапиме кон
одреден елемент од векторот
со користење на неговиот
индекс во средни загради:
14. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 14
Повикување на елементите од векторите 2
индекс 1 2 3 4 5 6 7 8 9
1 2 3 4 1 3 5 7 9
Дел од вектор (кој сам по себе исто така претставува
вектор) може да се добие со користење на операторот „:“.
На пример, следната наредба ќе ги одвои елементите од 4
до 6 во посебен вектор:
15. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 15
Повикување на елементите од векторите 3
индекс 1 2 3 4 5 6 7 8 9
1 2 3 4 1 3 5 7 9
Било кој вектор може да се
користи за индексите на
друг вектор (индекс-вектор):
Векторот [1 5 8] се вика индекс-вектор, зошто ги содржи
индексите на елементите од оригиналниот вектор кои ги
повикуваме.
16. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 16
Менување на елементите од векторите 1
Вредноста сместена во некој елемент од векторот може да
се смени користејќи го индексот на елементот.
Така, ако претходно:
Тогаш:
17. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 17
Менување на елементите од векторите 2
Ако се повика елемент со Ако пак има „растојание“
индекс кој сеуште не од повиканиот елемент до
постои, векторот ќе биде последниот елемент на
проширен: векторот, автоматски се
додаваат 0 за да се
пополнат „празните места“:
18. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 18
Кратка вежба:
Кој би бил резултатот од внесувањето на следната секвенца
од наредби:
19. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 19
Креирање на вектор-колона
Еден начин на креирање Друг начин на креирање
вектор-колона е со вектор-колона е со
директно задавање на транспонирање на ред-
вредностите, одводени вектор (со што може да се
со „;“ користи и операторот „:“ )
20. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 20
Креирање на матрични променливи 1
Креирањето на матрица едноставно е генерализирање на
креирањето вектор-ред и вектор-колона. Значи,
вредностите во еден ред се одвојуваат со празни места или
запирки, а редовите меѓусебно се одделуваат со точка-
запирка.
21. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 21
Креирање на матрични променливи 2
Секогаш мора да бидат дефинирани ист број на вредности
во еден ред – во спротивно се јавува грешка.
22. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 22
Креирање на матрични променливи 3
При креирањето матрици, Редовите од матрицата
исто така може да се може да се одвојат и со
користи операторот за Enter место со точка-
итерација „:“ (итератор). запирка:
23. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 23
Матрици од случајни броеви (rand)
Матрици од случајни броеви може да се креираат со
користење на функцијата . Со задавање на еден
аргумент , се креира матрица 𝑛 × 𝑛, а со задавање на два
аргументи се креира матрица со тие димензии (колку што
се аргументите).
24. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 24
Специјални матрици (zeros, ones)
Постојат повеќе функции за креирање на одредени
специјални матрици. Едни од најкористените се:
• креирање матрица чии елементи имаат вредност 0.
• креирање матрица чии елементи имаат вредност 1.
25. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 25
Повикување на елементите на матриците
1
За да се повика одреден елемент од матрицата, се користат
индексите на редот и колоната во мали загради (секогаш прво
редот, а потоа колоната) – индексирање со субскрипти
Пример: Креирање на матрица
, а потоа повикување на
вредноста од вториот ред и
третата колона
26. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 26
Повикување на елементите на матриците
2
За да се повика одреден елемент од матрицата, се користат
индексите на редот и колоната во мали загради (секогаш прво
редот, а потоа колоната) – индексирање со субскрипти
Пример: Креирање на матрица
, а потоа повикување на
вредноста од вториот ред и
третата колона
Можно е да се повика и
одреден дел/сегмент од
матрицата (подматрица):
27. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 27
Повикување на елементите на матриците
3
За да се повика одреден елемент од матрицата, се користат
индексите на редот и колоната во мали загради (секогаш прво
редот, а потоа колоната) – индексирање со субскрипти
Пример: Креирање на матрица
, а потоа повикување на
вредноста од вториот ред и
третата колона
Со користење на „:“ може да се
повика цел ред ...
28. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 28
Повикување на елементите на матриците
3
За да се повика одреден елемент од матрицата, се користат
индексите на редот и колоната во мали загради (секогаш прво
редот, а потоа колоната) – индексирање со субскрипти
Пример: Креирање на матрица
, а потоа повикување на
вредноста од вториот ред и
третата колона
Со користење на „:“ може да се
повика цел ред или колона
29. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 29
Повикување на елементите на матриците
4
Елемент од матрицата може да се повика и со еден индекс.
Во тој случај матрицата се третира како нејзините колони да
се поставени една врз друга – линеарно индексирање
30. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 30
Модифицирање на елементите на
матриците
Елемент од матрицата може да
се модифицира ако му се
додели нова вредност.
Може да се смени и цел ред од
матрицата
31. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 31
Додавање редови/колони на матриците
Матрицата може да се зголеми
ако и се додаде цел ред/колона
со индекс кој во моментот не
постои
Како и кај векторите, ако има
„растојание“ од последниот
индекс, до новот, ќе се додадат
редови/колони нули (0)
32. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 32
Димензии ( и ) - вектори
Функциите и
се користат за да
се добијат димензиите на
векторот .
33. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 33
Димензии ( и ) - матрици
Функцијата ги дава
броевите на редови и
колони на матрицата .
Резултатот од оваа
наредба е вектор 1 × 2
Функцијата кај
матриците го дава бројот
на редови или колони – и
тоа оној кој е поголем.
34. 01.03.2013 В.Витанов - ПРОГРАМИРАЊЕ ЛС2013 34
Кратка вежба:
Како може да се креира
матрица од нули, кој има
иста големина како некоја
друга матрица ?