Хичээл № 3.
Матрицын гинжин холбоо
Хаалтыг ашиглан илүү нийлмэл матрицыг үүсгэж болно:
>> [ones(2,2) zeros(2,2)]
>> [ones(2,2) ; zeros(2,2)]
Дасгал
- Эхний багана нь 1:10 гэсэн тоонуудыг, дараагийн багана нь эхний баганын элементүүдийн квадрат утгыг сүүлчийн багана нь эхний баганын гурван зэрэгтийг агуулсан матриц үүсгэ.
Илэрхийллүүд
Бүх Matlab илэрхийллүүд дараах элементүүдийг өөртөө агуулсан байдаг:
- Тогтмол – Constants
- Хувьсагч – Variables
- Үйлдлийн тэмдэг – Operators
- Түлхүүр үг – Keywords
- Функц – Functions
Тогтмол
Өмнөх хичээлүүдэд ашигласан 1, 3, 1.56, -5, pi зэрэг нь тогтмолууд юм. Үүнээс гадна: i, j, (root of -1), 2.4e12 (2.4 times 10^12), ‘a’ (the character a),’hello’ (a vector consisting of the letters ‘h’,’e’,’l’,’l’,’o’) зэрэг нь мөн л тогтмолууд юм. i болоод j-г хувьсагчаас өөрөөр ашиглаж болно: 3i эсвэл -15j гэж бичиж болно. Гэхдээ хэрэв a=10 хэмээн зарлаж өгсөн бол 4a гэж бичиж болохгүй… Мөн Matlab програм тодорхойлолтын хос цэгийг ашиглахыг зөвшөөрдөг:’a’:’z’.
Өөр векторын элементэд дараах байдлаах хандаж болно:
>> a=’hello’
>> a(2)
>> a(4:5)=’p!’
Дасгал:
- ‘zyx….cba’ тэмдэгтээс бүрдсэн мөр бүтээ
- ‘Hello!!’ ба ‘Goodbye’ (‘HGeolold….!e’ гэсэн хэлбэрээр) гэсэн мөрүүдийг хольсон мөр үссгэ
Хувьсагчид
Хувьсагчийн нэр заавал үсгээр эхлэх ёстой бөгөөд урт нь 32 тэмдэгтээс хэтрэх ёсгүй. Үсэг тооноос гадна доогуур зураас ‘_’ орсон байж болно.
Matlab-д матриц болоод векторын өгөгдөөгүй элементүүдийг тэгээр дүүргэж болдог:
>> a = [1 2 ; 3 4]
>> a(5,5) = 1
Үйлдлийн тэмдэгүүд
Матлав: =,+,-,/,*,^,.,’,[,],(,),;,: гэсэн үйлдлийн тэмдэгүүдийг агуулдаг.
Түлхүүр үг
Одоохондоо бид олон түлхүүр үг үзээгүй байгаа. end бол бидний одоогоор үзсэн түлхүүр үг юм.
Функц
ones, zeros, diag, size гэсэн функцүүдийг бид өмнөх хичээлүүдээр үзсэн. Үүнээс гадна өөр олон функц байдаг. Жиээлбэл: sin, cos, exp, log, sqrt. Стандарт функцүүдийг дуудан ашиглаж болохоос гадна хэрэглэгч өөрөө функц үүсгэж болдог. Үүнийг бид дараа дараагийн хичээлээр үзэх болно.
График зурах
Matlab програмаар гоё сайхан зураглал дүрсэлж болдог. Зурах бол Matlab програмын үндсэн хэрэглэгдэхүүн боломжуудын нэг юм. Дүрслэл зургийг ихэнхдээ цэгээр илэрхийлж улмаар цэгийн зайн өөрчлөлтөөр дүрсэлнэ. Жишээгээр энэ ялгааг ойлгоход дөхөмтэй байдаг:
>> x = 0:0.01:1 ;
>> y = sin(x) ;
>> plot(x,y)
Нэмэлт тайлбар.
1. Цэг таслал. ‘;’ -г мөрийг төгсгөлд бичиж өгснөөр зургийг “гарга” гэсэн санааг илэрхийлж байдаг. Гэхдээ ийм бичиглэлээр төгсгөлд нь бичиж өгөөгүйгээс дүрслэл зурагдахгүй гэсэн үг биш юм. Цэг таслал бичихгүй бол дэлгэц дээр зураг гарахгүй.
2. plot функцээр бид сайхан дүрслэл гаргаж болно. Энэ үйлдлийг өөр функц дээр туршаарай.
Дасгал:
|
Логик үйлдлүүд
Зарим тохиолдолд тоонуудыг харьцуулах хэрэгтэй болдог. Энэ тохиолдолд бид логик үйлдлийг ашиглана.
Туршилт
Харьцуулах үйлдлүүд: ==, ~=, < >, <=, >=:
>> 1==2
>> 3~=5
>> 5<=6
>> 7<=10
Эдгээр үйлдлүүд буруу үед 0 зөв үед 1 гэсэн утга буцаана. Өөрөөр хэлбэл 0 бол false буюу худал 1 бол true буюу үнэн гэсэн санааг илтгэнэ.
While this notation looks similar to math, there are a few pitfalls
- 1<x<5 does NOT return what it does in math…in fact this will alway be true regardless of the value of x. Can you see why?
- == is not =. Regardless of how many time I will say this, people will still make this mistake many times…but perhaps by saying it lots, it will happen less…maybe. remember…you have been warned…= is assignment, and == is a test for equality.
Boolean operations
What if we want to check two things? A and B? or perhaps A and (B or C)…for this we need Boolean operators: & (AND), | (OR), and ~(NOT)
(The | is usually found at the middle right of the keyboard, and it needs a SHIFT key.)
- 1~=2 | 3<4
- 3~=4 & 8==(4+4)
- ~(2<=8)
Formatting Text
Once in a while we would like to display some text that is nicely formatted and not just the output as Matlab wants to display. To do this we use the sprintf command.
In its simplest form it is quite straightforward…the first arguemnt is a format string, and the rest are parameters for the string. examples:
- sprintf(‘hello, here is a number %d’,17)
- sprintf(‘my name is %s and I am %g years old’,’Yossi’,31)
Read up on sprintf to get the whole picture.
Recent Comments