More Related Content More from Chinzorig Undarmaa More from Chinzorig Undarmaa (20) Лекц 42. 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