MATLAB Үндэс
MATLAB Үндэс
Хувьсагч болон массив
– Массив гэдэг нь мөр баганаас бүрдсэн
утгуудын цуглуулга
Row 1
Row 2

Row 3
arr(3,2)

Row 4

Col 1 Col 2 Col 3 Col 4 Col 5
CS 111

2
MATLAB Үндэс
• Массив
– Matlab-н өгөгдлийн үндсэн нэгж
– Хэмжигдэхүүнүүд нь заримдаа массиваар
дүрслэгддэг
– Мөр болон багана нь массивыг заах бөгөөд 1-с
эхлэнэ
– Массив нь вектор болон матриц гэсэн 2
ангилалд хуваагддаг

CS 111

3
MATLAB Үндэс
• Вектор: нэг хэмжээст массив
• Матриц: нэг болон түүнээс хэмжээст массив
• Хэмжээ: массивын хэмжээ нь мөр болон
баганын тоогоор тодорхойлогддог. Элементийн
тоо нь мөр болон баганын тоог үржүүлсэнтэй
тэнцүү.

CS 111

4
MATLAB Үндэс
1 2
a= 3 4
5 6

3x2 matrix  6 elements

b=[1 2 3 4]

1x4 array  4 elements, row vector

1
c= 3
5

3x1 array  3 elements, column vector

a(2,1)=3
Row #
CS 111

b(3)=3

c(2)=3

Column #
5
MATLAB Үндэс
• Хувьсагч
– Хэрэглэгчийн тодорхойлсон санах ойн хязгаарт
массив агуулагдана.
– Ямар ч үед агуулгыг нь өөрчилж болно мөн
ашиглаж болно
– Хувьсагчийн нэр нь үсэг, ямар нэгэн үсгийн
нийлэмж, тоо, _ байж болно
– Matlab хэлэнд Name, name гэсэн хоѐр хувьсагч
ялгаатай хувьсагч

CS 111

6
MATLAB Үндэс
• Matlab хувьсагчийн үндсэн төрлүүд
– Double:15-с 16-н ороноор 10-308 to 10308
хязгаар дотор дүрслэгдэх бодит тоо, зураг,
бүхэл тоо

>> var = 1 + i ;
– Char: 16-н битийн утгууд байх бөгөөд нэг бит бүр
нь нэг тэмдэгтийг илэрхийлнэ
>> comment = ‘This is a character string’ ;

CS 111

7
MATLAB Үндэс
Утга олгох илэрхийлэлээр хувьсагчид анхны утгыг
олгох
var = expression
ЖИШЭЭ:
>> var = 40 * i;
>> var2 = var / 5;
>> array = [1 2 3 4];
>> x = 1; y = 2;
>> a = [3.4];
>> b = [1.0 2.0 3.0 4.0];
>> c = [1.0; 2.0; 3.0];
>> d = [1, 2, 3; 4, 5, 6];
>> e = [1, 2, 3
4, 5, 6];
CS 111

>> a2 = [0 1+8];
>> b2 = [a2(2) 7 a];
>> c2(2,3) = 5;
>> d2 = [1 2];
>> d2(4) = 4;

8
MATLAB Үндэс
• Утга олгох илэрхийлэлээр хувьсагчид анхны утгыг
олгох
– Массив нь хаалт болон цэг таслал ашиглан үүсгэгдэнэ
– Мөр бүрийн утга нь зүүнээс баруун тийшээ жагсаагдах бөгөөд
хоорондоо хоосон зай болон таслалаар тусгаарлагдана.
– Мөрүүд нь цэг таслалаар болон шинэ мөрөөр тусгаарлагдана
– Массивын мөр бүрийн элементүүдийн тоо нь ижил байх
ѐстой.
– Алгебрийн үйлдлүүд болон массивийг урьдчилан зарлах
илэрхийлэлүүд нь массивийн анхны утгыг тодорхойлоход
ашигладаг.

CS 111

9
MATLAB Үндэс
Товчилбор илэрхийлэлээр анхны утгыг олгох
first: increment: last
Тодорхойлох хоѐр цэг : товчилбор тэмдэглэл нь их хэмжээний
элементтэй массивийн анхны утгыг олгоход ашиглагдаг.

>> x = 1 : 2 : 10;
>> angles = (0.01 : 0.01 : 1) * pi;
Солих үйлдэл: массивын мөр баганын байрыг солих

>> f = [1:4]′;
>> g = 1:4;
>> h = [ g′ g′ ];
CS 111

1
2
h=
3
4

1
2
3
4
10
MATLAB Үндэс
функцаар анхны утгыг олгох
•
•
•
•
•
•
•
•
•
•
CS 111

zeros(n)
zeros(n,m)
zeros(size(arr))
ones(n)
ones(n,m)
ones(size(arr))
eye(n)
eye(n,m)
length(arr)
size(arr)

>> a = zeros(2);
>> b = zeros(2, 3);
>> c = [1, 2; 3, 4];
>> d = zeros(size(c));

11
MATLAB Үндэс
Гараас оруулах үйлдлээр анхын утгыг
олгох
my_val = input( ‘Enter an input value: ’ );
in1 = input( ‘Enter data: ’ );
in2 = input( ‘Enter data: ’ ,`s`);

CS 111

12
MATLAB Үндэс
Олон хэмжээст массив
Мөр баганаас бүрдсэн хоѐр хэмжээст массив нь компьютерийн
санах ойд mxn дараалсан байрлалыг эзэлж авдаг.Matlab-д баганын
үндсэн эрэмбээр массивын элементүүд байрладаг.

a= [1 2 3; 4 5 6; 7 8 9; 10 11 12];
a(5) = a(1,2) = 2

• A 2x3x2

1
4

2

3

7

4

5

6

10

7

8

9

2

10 11 12

c(:, :, 1) = [1 2 3; 4 5 6 ];
c(:, :, 2) = [7 8 9; 10 11 12];

1

5
8
11

CS 111

13
MATLAB Үндэс
Дэд массив
Matlab массив-н дэд массивийг сонгох болон ашиглах боломжтой.

arr1 = [1.1 -2.2 3.3 -4.4 5.5];
arr1(3) is 3.3
arr1([1 4]) is the array [1.1 -4.4]
arr1(1 : 2 : 5) is the array [1.1 3.3 5.5]
Хоѐр хэмжээст массивын хувьд, массивын дэд хэсгүүдийг сонгохдоо
тодорхойлох хоѐр цэг ашиглана.

arr2 = [1 2 3; -2 -3 -4; 3 4 5];
arr2(1, :)
arr2(:, 1:2:3)

CS 111

14
MATLAB Үндэс
Дэд массив
END функц:Заасан байрлалаас массивын төгсгөлийн
элементийг зааж дэд хэсэг болгон ашиглахад ашигладаг.
arr3 = [1 2 3 4 5 6 7 8];
arr3(5:end) is the array [5 6 7 8]
arr4 = [1 2 3 4; 5 6 7 8; 9 10 11 12];
arr4(2:end, 2:end)
Утга олгох илэрхийлэлээр массивыг өөрчлөх

arr4(1:2, [1 4]) = [20 21; 22 23];
(1,1) (1,4) (2,1) and (2,4) өөрчлөгдөнө.
arr4 = [20 21; 22 23]; - бүгд өөрчлөгдөнө.
CS 111

15
MATLAB Үндэс
Дэд массив

•Утга олгох илэрхийлэлээр хуулах үйлдэл
>> arr4 = [1 2 3 4; 5 6 7 8; 9 10 11 12];
>> arr4(1:2, 1:2) = 1
arr4 =
1 1 3 4
1 1 7 8
9 10 11 12

CS 111

16
MATLAB Үндэс
Тусгай утгууд
Matlab нь урьдчилан тусгай утгуудыг багтаасан
байдаг бөгөөд тэдгээрийн анхны утгыг
тодорхойлоогүй үед ч ашиглах боломжтой.
Тэдгээр утгууд нь ordinary хувьсагчид хадгалагдана.
Хэрэглэгчийн тодорхойлсноор өөрчилж болно.
>> circ1 = 2 * pi * 10;
>> pi = 3;
>> circ2 = 2 * pi * 10;

CS 111

17
MATLAB Үндэс
Data форматыг өөрчлөх
>> value = 12.345678901234567;
format short
12.3457
format long
12.34567890123457
format short e
1.2346e+001
format long e
1.234567890123457e+001
format short g
12.346
format long g
12.3456789012346
format rat
1000/81

CS 111

18
MATLAB Үндэс
disp( массив ) функц
>> disp( 'Hello' )
Hello
>> disp(5)
5
>> disp( [ 'Bilkent ' 'University' ] )
Bilkent University
>> name = 'Alper';
>> disp( [ 'Hello ' name ] )
Hello Alper
CS 111

19
MATLAB Үндэс
num2str() болон int2str() функц
>> d = [ num2str(16) '-Feb-' num2str(2004) ];
>> disp(d)
16-Feb-2004
>> x = 23.11;
>> disp( [ 'answer = ' num2str(x) ] )
answer = 23.11
>> disp( [ 'answer = ' int2str(x) ] )
answer = 23

CS 111

20
MATLAB Үндэс
fprintf( format, data ) функц
–
–
–
–

%d
%f
%e
%g

– n
– t

CS 111

integer
floating point format
exponential format
either floating point or exponential
format, whichever is shorter
new line character
tab character

21
MATLAB Үндэс
>> fprintf( 'Result is %d', 3 )
Result is 3
>> fprintf( 'Area of a circle with radius %d is %f', 3, pi*3^2 )
Area of a circle with radius 3 is 28.274334
>> x = 5;
>> fprintf( 'x = %3d', x )
x= 5
>> x = pi;
>> fprintf( 'x = %0.2f', x )
x = 3.14
>> fprintf( 'x = %6.2f', x )
x = 3.14
>> fprintf( 'x = %dny = %dn', 3, 13 )
x=3
y = 13
CS 111

22
MATLAB Үндэс
Data файл
• save filename var1 var2 …
>> save myfile.mat x y
>> save myfile.dat x –ascii

binary
ascii

• load filename
>> load myfile.mat
>> load myfile.dat –ascii

CS 111

binary
ascii

23
MATLAB Үндэс
• variable_name = expression;
–
–
–
–
–

CS 111

addition
subtraction
multiplication
division
exponent

a+b
a-b
axb
a/b
ab

a+b
a-b
a*b
a/b
a^b

24
MATLAB Үндэс
Үйлдлүүдийн дараалал
• x=3*2+6/2
• Үйлдлийн дараалал нь боловсруулалтанд
чухал
–
–
–
–

Бага хаалт(хамгийн дотор талаас нь эхлэнэ)
Илтгэгч функц
Үржих болон хуваалт
Нэмэх болон хасах

>> x = 3 * 2 + 6 / 2
x=9
CS 111

25
MATLAB Үндэс
MATLAB Функц
• result = function_name( input );
–
–
–
–
–
–
–
–
–

abs, sign
log, log10, log2
exp
sqrt
sin, cos, tan
asin, acos, atan
max, min
round, floor, ceil, fix
mod, rem

• help elfun
тусламж
CS 111

математикын үндсэн функцуудын
26

Лекц 4

  • 1.
  • 2.
    MATLAB Үндэс Хувьсагч болонмассив – Массив гэдэг нь мөр баганаас бүрдсэн утгуудын цуглуулга Row 1 Row 2 Row 3 arr(3,2) Row 4 Col 1 Col 2 Col 3 Col 4 Col 5 CS 111 2
  • 3.
    MATLAB Үндэс • Массив –Matlab-н өгөгдлийн үндсэн нэгж – Хэмжигдэхүүнүүд нь заримдаа массиваар дүрслэгддэг – Мөр болон багана нь массивыг заах бөгөөд 1-с эхлэнэ – Массив нь вектор болон матриц гэсэн 2 ангилалд хуваагддаг CS 111 3
  • 4.
    MATLAB Үндэс • Вектор:нэг хэмжээст массив • Матриц: нэг болон түүнээс хэмжээст массив • Хэмжээ: массивын хэмжээ нь мөр болон баганын тоогоор тодорхойлогддог. Элементийн тоо нь мөр болон баганын тоог үржүүлсэнтэй тэнцүү. CS 111 4
  • 5.
    MATLAB Үндэс 1 2 a=3 4 5 6 3x2 matrix  6 elements b=[1 2 3 4] 1x4 array  4 elements, row vector 1 c= 3 5 3x1 array  3 elements, column vector a(2,1)=3 Row # CS 111 b(3)=3 c(2)=3 Column # 5
  • 6.
    MATLAB Үндэс • Хувьсагч –Хэрэглэгчийн тодорхойлсон санах ойн хязгаарт массив агуулагдана. – Ямар ч үед агуулгыг нь өөрчилж болно мөн ашиглаж болно – Хувьсагчийн нэр нь үсэг, ямар нэгэн үсгийн нийлэмж, тоо, _ байж болно – Matlab хэлэнд Name, name гэсэн хоѐр хувьсагч ялгаатай хувьсагч CS 111 6
  • 7.
    MATLAB Үндэс • Matlabхувьсагчийн үндсэн төрлүүд – Double:15-с 16-н ороноор 10-308 to 10308 хязгаар дотор дүрслэгдэх бодит тоо, зураг, бүхэл тоо >> var = 1 + i ; – Char: 16-н битийн утгууд байх бөгөөд нэг бит бүр нь нэг тэмдэгтийг илэрхийлнэ >> comment = ‘This is a character string’ ; CS 111 7
  • 8.
    MATLAB Үндэс Утга олгохилэрхийлэлээр хувьсагчид анхны утгыг олгох var = expression ЖИШЭЭ: >> var = 40 * i; >> var2 = var / 5; >> array = [1 2 3 4]; >> x = 1; y = 2; >> a = [3.4]; >> b = [1.0 2.0 3.0 4.0]; >> c = [1.0; 2.0; 3.0]; >> d = [1, 2, 3; 4, 5, 6]; >> e = [1, 2, 3 4, 5, 6]; CS 111 >> a2 = [0 1+8]; >> b2 = [a2(2) 7 a]; >> c2(2,3) = 5; >> d2 = [1 2]; >> d2(4) = 4; 8
  • 9.
    MATLAB Үндэс • Утгаолгох илэрхийлэлээр хувьсагчид анхны утгыг олгох – Массив нь хаалт болон цэг таслал ашиглан үүсгэгдэнэ – Мөр бүрийн утга нь зүүнээс баруун тийшээ жагсаагдах бөгөөд хоорондоо хоосон зай болон таслалаар тусгаарлагдана. – Мөрүүд нь цэг таслалаар болон шинэ мөрөөр тусгаарлагдана – Массивын мөр бүрийн элементүүдийн тоо нь ижил байх ѐстой. – Алгебрийн үйлдлүүд болон массивийг урьдчилан зарлах илэрхийлэлүүд нь массивийн анхны утгыг тодорхойлоход ашигладаг. CS 111 9
  • 10.
    MATLAB Үндэс Товчилбор илэрхийлэлээранхны утгыг олгох first: increment: last Тодорхойлох хоѐр цэг : товчилбор тэмдэглэл нь их хэмжээний элементтэй массивийн анхны утгыг олгоход ашиглагдаг. >> x = 1 : 2 : 10; >> angles = (0.01 : 0.01 : 1) * pi; Солих үйлдэл: массивын мөр баганын байрыг солих >> f = [1:4]′; >> g = 1:4; >> h = [ g′ g′ ]; CS 111 1 2 h= 3 4 1 2 3 4 10
  • 11.
    MATLAB Үндэс функцаар анхныутгыг олгох • • • • • • • • • • CS 111 zeros(n) zeros(n,m) zeros(size(arr)) ones(n) ones(n,m) ones(size(arr)) eye(n) eye(n,m) length(arr) size(arr) >> a = zeros(2); >> b = zeros(2, 3); >> c = [1, 2; 3, 4]; >> d = zeros(size(c)); 11
  • 12.
    MATLAB Үндэс Гараас оруулахүйлдлээр анхын утгыг олгох my_val = input( ‘Enter an input value: ’ ); in1 = input( ‘Enter data: ’ ); in2 = input( ‘Enter data: ’ ,`s`); CS 111 12
  • 13.
    MATLAB Үндэс Олон хэмжээстмассив Мөр баганаас бүрдсэн хоѐр хэмжээст массив нь компьютерийн санах ойд mxn дараалсан байрлалыг эзэлж авдаг.Matlab-д баганын үндсэн эрэмбээр массивын элементүүд байрладаг. a= [1 2 3; 4 5 6; 7 8 9; 10 11 12]; a(5) = a(1,2) = 2 • A 2x3x2 1 4 2 3 7 4 5 6 10 7 8 9 2 10 11 12 c(:, :, 1) = [1 2 3; 4 5 6 ]; c(:, :, 2) = [7 8 9; 10 11 12]; 1 5 8 11 CS 111 13
  • 14.
    MATLAB Үндэс Дэд массив Matlabмассив-н дэд массивийг сонгох болон ашиглах боломжтой. arr1 = [1.1 -2.2 3.3 -4.4 5.5]; arr1(3) is 3.3 arr1([1 4]) is the array [1.1 -4.4] arr1(1 : 2 : 5) is the array [1.1 3.3 5.5] Хоѐр хэмжээст массивын хувьд, массивын дэд хэсгүүдийг сонгохдоо тодорхойлох хоѐр цэг ашиглана. arr2 = [1 2 3; -2 -3 -4; 3 4 5]; arr2(1, :) arr2(:, 1:2:3) CS 111 14
  • 15.
    MATLAB Үндэс Дэд массив ENDфункц:Заасан байрлалаас массивын төгсгөлийн элементийг зааж дэд хэсэг болгон ашиглахад ашигладаг. arr3 = [1 2 3 4 5 6 7 8]; arr3(5:end) is the array [5 6 7 8] arr4 = [1 2 3 4; 5 6 7 8; 9 10 11 12]; arr4(2:end, 2:end) Утга олгох илэрхийлэлээр массивыг өөрчлөх arr4(1:2, [1 4]) = [20 21; 22 23]; (1,1) (1,4) (2,1) and (2,4) өөрчлөгдөнө. arr4 = [20 21; 22 23]; - бүгд өөрчлөгдөнө. CS 111 15
  • 16.
    MATLAB Үндэс Дэд массив •Утгаолгох илэрхийлэлээр хуулах үйлдэл >> arr4 = [1 2 3 4; 5 6 7 8; 9 10 11 12]; >> arr4(1:2, 1:2) = 1 arr4 = 1 1 3 4 1 1 7 8 9 10 11 12 CS 111 16
  • 17.
    MATLAB Үндэс Тусгай утгууд Matlabнь урьдчилан тусгай утгуудыг багтаасан байдаг бөгөөд тэдгээрийн анхны утгыг тодорхойлоогүй үед ч ашиглах боломжтой. Тэдгээр утгууд нь ordinary хувьсагчид хадгалагдана. Хэрэглэгчийн тодорхойлсноор өөрчилж болно. >> circ1 = 2 * pi * 10; >> pi = 3; >> circ2 = 2 * pi * 10; CS 111 17
  • 18.
    MATLAB Үндэс Data форматыгөөрчлөх >> value = 12.345678901234567; format short 12.3457 format long 12.34567890123457 format short e 1.2346e+001 format long e 1.234567890123457e+001 format short g 12.346 format long g 12.3456789012346 format rat 1000/81 CS 111 18
  • 19.
    MATLAB Үндэс disp( массив) функц >> disp( 'Hello' ) Hello >> disp(5) 5 >> disp( [ 'Bilkent ' 'University' ] ) Bilkent University >> name = 'Alper'; >> disp( [ 'Hello ' name ] ) Hello Alper CS 111 19
  • 20.
    MATLAB Үндэс num2str() болонint2str() функц >> d = [ num2str(16) '-Feb-' num2str(2004) ]; >> disp(d) 16-Feb-2004 >> x = 23.11; >> disp( [ 'answer = ' num2str(x) ] ) answer = 23.11 >> disp( [ 'answer = ' int2str(x) ] ) answer = 23 CS 111 20
  • 21.
    MATLAB Үндэс fprintf( format,data ) функц – – – – %d %f %e %g – n – t CS 111 integer floating point format exponential format either floating point or exponential format, whichever is shorter new line character tab character 21
  • 22.
    MATLAB Үндэс >> fprintf('Result is %d', 3 ) Result is 3 >> fprintf( 'Area of a circle with radius %d is %f', 3, pi*3^2 ) Area of a circle with radius 3 is 28.274334 >> x = 5; >> fprintf( 'x = %3d', x ) x= 5 >> x = pi; >> fprintf( 'x = %0.2f', x ) x = 3.14 >> fprintf( 'x = %6.2f', x ) x = 3.14 >> fprintf( 'x = %dny = %dn', 3, 13 ) x=3 y = 13 CS 111 22
  • 23.
    MATLAB Үндэс Data файл •save filename var1 var2 … >> save myfile.mat x y >> save myfile.dat x –ascii binary ascii • load filename >> load myfile.mat >> load myfile.dat –ascii CS 111 binary ascii 23
  • 24.
    MATLAB Үндэс • variable_name= expression; – – – – – CS 111 addition subtraction multiplication division exponent a+b a-b axb a/b ab a+b a-b a*b a/b a^b 24
  • 25.
    MATLAB Үндэс Үйлдлүүдийн дараалал •x=3*2+6/2 • Үйлдлийн дараалал нь боловсруулалтанд чухал – – – – Бага хаалт(хамгийн дотор талаас нь эхлэнэ) Илтгэгч функц Үржих болон хуваалт Нэмэх болон хасах >> x = 3 * 2 + 6 / 2 x=9 CS 111 25
  • 26.
    MATLAB Үндэс MATLAB Функц •result = function_name( input ); – – – – – – – – – abs, sign log, log10, log2 exp sqrt sin, cos, tan asin, acos, atan max, min round, floor, ceil, fix mod, rem • help elfun тусламж CS 111 математикын үндсэн функцуудын 26