Upload
tivona
View
222
Download
6
Embed Size (px)
DESCRIPTION
คู่มือการใช้งาน MATLAB เบื้องต้น. ดร.จาตุรงค์ ตันติบัณฑิต charturong.ee.engr.tu.ac.th/CN208 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยธรรมศาสตร์. เอกสารประกอบการสอนนี้จัดทำโดย ดร.ทรงยศ นาคอริยกุล. What is MATLAB?. - PowerPoint PPT Presentation
Citation preview
คู่��มื�อการใช้�งาน MATLAB เบื้��องต้�น
ดร.จาตุ�รงค์ ตุ�นตุ บั�ณฑิ ตุcharturong.ee.engr.tu.ac.th/CN208
ภาค์วิ ชาวิ ศวิกรรมไฟฟ�าและค์อมพิ วิเตุอรมหาวิ ทยาล�ยธรรมศาสตุร
เอกสารประกอบัการสอนน&'จ�ดท(าโดย ดร.ทรงยศ นาค์อร ยก�ล
2
What is MATLAB?
MATLAB ย*อมาจาก MATrix LABoratory ซึ่,-งถู/กสร0างขึ้,'นมาเพิ2-อการใช0งานทางวิ ศวิกรรม โดยรวิมไปถู,ง– Math and computation
– Algorithm development
– Data acquisition
– Modeling, simulation, and prototyping
– Data analysis, exploration, and visualization
– Scientific and engineering graphics
– Application development, including graphic user interface building
3
หน�าต้�าง MATLAB
1
2
3
4
1. The Command Windowค์(าส�-งหร2อ commands จะถู/กใส*ในหน0าตุ*างน&'หล�งเค์ร2-องหมาย >> (the command
prompt) ผลล�พิทถู/กแสดงหล�งจากผ/0ใช0ใส* commands ท�'งหมดแล0วิกดป�5ม Enter ท&-ค์&ยบัอรด
2. The Command History Windowในหน0าตุ*าง the command history จะบั�นท,กค์(าส�-งตุ*างๆท&-ผ/0ใช0ได0ใส*ท&-หน0าตุ*างค์(าส�-ง
(The Command History) ตุ�'งแตุ*เร -มเป7ดใช0โปรแกรม MATLAB
3. The Current Directoryหน0าตุ*างน&'ใช0เพิ2-อแสดงวิ*าในตุอนน&' MATLAB ก(าล�งตุ ดตุ*อก�บัแฟ�ม (Directory)
ไหนอย/* ซึ่,-งเวิลา MATLAB เซึ่ฟไฟลจะเซึ่ฟลงใน Directory ท&-แสดงอย/*น&' ท� 'งน&'ผ/0ใช0สามารถูเล2อก (Browse) หร2อ พิ มพิช2-อเปล&-ยน the Current Directory ได0
5
To get ‘Help’
MATLAB ม&หน0าตุ*าง Help ส(าหร�บัผ/0เร -มตุ0นใช0โปรแกรมเบั2'องตุ0น ซึ่,-งผ/0ใช0สามารถูเป7ดหน0าตุ*างน&'ได0หลายวิ ธ& เช*น
1 .กดค์ล 8กท&- ‘?’ ใกล0ก�บั Current Directory
หร2อ 2. พิ มพิ helpdesk หร2อ helpwin ท&- command prompt (>>) ในหน0าตุ*าง Command แล0วิกด Enter
6
หน�าต้�าง Help
7
ในหน0าตุ*าง Help จะม&หน0าตุ*างย*อยให0เล2อกทางซึ่0ายม2อ 4 หน0าตุ*างด�งน&'1. Contents จะแสดงรายละเอ&ยดการใช0งานเบั2'องตุ0น และ แนะน(า
Toolbox ตุ*างๆ2. Index จะแสดงรายช2-อ Function ท&- MATLAB ม&ท�'งหมดจาก A-Z
3. Search ใช0ส(าหร�บัค์0นหา Function ท&-ม&ใน MATLAB
4. Demos จะรวิมวิ&ด&โอแนะน(าการใช0งานเบั2'องตุ0นใน MATLAB
ปิ�ด MATLABเวิลาป7ดโปรแกรม MATLAB ให0ผ/0ใช0พิ มพิค์(าวิ*า exit หร2อ quit ท&-
command prompt ในหน0าตุ*าง command
8
Simple Math
MATLAB สามารถูใช0งานได0เหม2อนเค์ร2-องค์ ดเลขึ้ท�-วิไป ซึ่,-งการใช0งานก9แสนง*ายและกระท(าได0ด�งน&'
หากตุ0องการหาผลล�พิธขึ้อง
ให0พิ มพิ (2^5+25-9*3)/2 หล�ง command prompt (>>)
ซึ่,-งจะได0ผลล�พิธค์2อ 15
5(2 25 9 3) / 2 ?
9
Special Symbols
Operation Symbol
Addition
Subtraction
Multiplication
Division
Exponentation
+
-
*
/
^
10
ต้�วแปิร หร�อ Variable
ตุ�วิแปร (variable) ค์2อหน*วิยค์วิามจ(าท&-ถู/กก(าหนดขึ้,'นโดยผ/0ใช0 ซึ่,-งค์*าขึ้องตุ�วิแปรสามารถูถู/กเปล&-ยนแปลงได0ตุลอดเวิลาโดยผ/0ใช0ด0วิยการใส*ค์(าส�-ง command ตุ�วิอย*างเช*น
ก(าหนดตุ�วิแปรช2-อ var ให0ม&ค์*า 15 ท(าได0โดยการพิ มพิ >>var = 15 ท&- command window
11
กฎในการก�าหนดช้��อต้�วแปิรตุ�วิแปรใน MATLAB ตุ0องเร -มตุ0นช2-อด0วิยตุ�วิอ�กษรเสมอ แล0วิอาจจะตุาม
ด0วิยตุ�วิอ�กษร เลขึ้ หร2อ เค์ร2-องหมายขึ้&ดเส0นใตุ0 ( _ ) เท*าน�'น ตุ�วิแปรก(าหนดให0ม&ค์วิามยาวิแค์* 63 ตุ�วิอ�กษร
ตุ�วิอย*างการเล2อกช2-อตุ�วิแปรท&-ถู/กตุ0องเช*น index, year, growth_rate, a1, a2 เป;นตุ0น
ตุ�วิอย*างช2-อตุ�วิแปรท&-ผ ดเช*น growth rate (ห0ามใช0เวิ0นวิรรค์), 2r (ห0ามขึ้,'นตุ0นด0วิยตุ�วิเลขึ้)
ขึ้0อค์วิรจ(า: ตุ�วิแปรใน MATLAB น�'น case-sensitive น�-นค์2อ MATLAB จะถู2อวิ*าตุ�วิแปร Growth น�'นแตุกตุ*างจากตุ�วิแปร growth
ค์(าแนะน(า: เวิลาเขึ้&ยนช2-อตุ�วิแปรให0ใช0แตุ*ตุ�วิอ�กษรเล9ก (lower-case letters) เสมอเพิ2-อก�นการผ ดพิลาด
12
Assignment Statements
ในการก(าหนดค์*าตุ�วิแปรให0ใช0แบับัฟอรมด�งน&'var = expression
น�-นค์2อ ตุ�วิแปรตุ0องอย/*ทางซึ่0ายม2อขึ้องเค์ร2-องหมาย = เสมอ โดย MATLAB จะค์(านวิณค์*าใน expression ทางขึ้วิาม2อให0เสร9จก*อน แล0วิจ,งก(าหนดค์*าผลล�พิธให0แก*ตุ�วิแปร var
ตุ�วิอย*าง>> gas = 29 ค์*าขึ้อง gas เป;น 29
>> gas = gas + 1 ค์*าขึ้อง gas เปล&-ยนเป;น 30
>> gas – 1 = 30 ERROR
13
Data Type
ชน ดขึ้องตุ�วิแปรใน MATLAB ส*วินมากจะเป;น double หร2อ char
ตุ�วิแปรชน ด double ใช0ส(าหร�บัเก9บัค์*าตุ�วิเลขึ้ (scalar) ซึ่,-งใช0ค์วิามจ(า 64 bits สามารถูแสดงค์*าจ(านวินจร งค์*าลบัและบัวิกท&-ม&ค์*าตุ�'งแตุ* 10-308 ถู,ง 10308 และแม*นย(าถู,งตุ(าแหน*งทศน ยมท&- 15
MATLAB จะก(าหนดค์*าตุ�วิแปรเป;นชน ด double ส(าหร�บัตุ�วิแปรท&-เก9บัค์*าจ(านวิน
ตุ�วิแปรชน ด char ใช0ค์วิามจ(า 16 bits ซึ่,-งใช0เก9บัตุ�วิอ�กษรหน,-งตุ�วิเท*าน�'น ส(าหร�บัการเก9บัประโยค์ในตุ�วิแปร MATLAB จะท(าการเก9บัในร/ปแบับัขึ้อง array ขึ้อง char ยกตุ�วิอย*างเช*น
>>comment = 'This is a character string';
ผลล�พิทค์2อตุ�วิแปร comment เก9บัค์*า array ขึ้อง character 26 ตุ�วิ
14
MATLAB Matrices – 1การก(าหนดค์*าเมทร กซึ่ให0ก�บัตุ�วิแปรให0ใช0กฎด�งตุ*อไปน&'
1. สมาช กหร2อ element ในเมทร กซึ่ตุ0องเป;นค์*าตุ�วิเลขึ้2. ใช0ช*องวิ*าง(space)หร2อล/กน('า(comma)เพิ2-อแยกสมาช กในแตุ*ละแถูวิ (row)
3. ใช0เค์ร2-องหมาย semicolon (;) เพิ2-อก(าหนดจ�ดส 'นส�ดแตุ*ละแถูวิ4. จ(านวินสมาช กในแตุ*ละแถูวิตุ0องเท*าก�น
ยกตุ�วิอย*างเช*น
15
หากไม*ตุ0องการให0 MATLAB แสดงผลบันหน0าจอหล�งจากท&-ผ/0ใช0กด Enter แล0วิ ให0ใช0 semicolon ป7ดท0ายค์(าส�-งในแตุ*ละค์(าส�-ง
การให0 MATLAB ไม*แสดงผลบันหน0าจอจะช*วิยให0โปรแกรมท(างานได0เร9วิขึ้,'น แตุ*ในบัางกรณ&การแสดงผลบันหน0าจอจะช*วิยให0การแก0ไขึ้ขึ้0อผ ดพิลาด (debug) ขึ้องโปรแกรมง*ายขึ้,'น
MATLAB Matrices – 2
16
การเร�ยกคู่�าสมืาช้!กในเมืทร!กซ์$สมม�ตุ ให0เมทร กซึ่ a ค์2อ
การเร&ยกค์*าสมาช กขึ้อง a ใน row ท&- 2 และ column ท&- 4 ท(าได0โดยการใส*ค์(าส�-ง
ซึ่,-งใช0เค์ร2-องหมายวิงเล9บัตุามหล�งตุ�วิแปรท&-ตุ0องการทราบั ตุ�วิเลขึ้ตุ�วิแรกในวิงเล9บัแสดงตุ(าแหน*งขึ้องแถูวิ ตุามด0วิยเค์ร2-องหมาย comma และตุ�วิเลขึ้แสดงตุ(าแหน*ง column
การแสดงค์*าสมาช กขึ้อง a ใน row ท&- 3 และ column ท&- 5 ก9ใช0ค์(าส�-ง >> a(3,5) เป;นตุ0น
1 2 3 4 5
a 6 7 8 9 10
11 12 13 14 15
17
การเปิลี่��ยนคู่�าสมืาช้!กในเมืทร!กซ์$การเปล&-ยนค์*าสมาช กในเมทร กซึ่ ท(าได0โดยการใช0แบับัฟอรมการก(าหนด
ค์*าตุ�วิแปรด�งท&-ได0แสดงในสไลดหน0า 12 โดยก(าหนดตุ�วิแปรเป;นตุ(าแหน*งขึ้องสมาช กในเมทร กซึ่ และ ค์*าตุ�วิเลขึ้ใหม*ไวิ0ทางขึ้วิาขึ้องเค์ร2-องหมายเท*าก�บั (=) ยกตุ�วิอย*างเช*น ถู0าตุ0องการเปล&-ยนค์*าสมาช กแถูวิท&- 2 ค์อล�มนท&- 3 ขึ้องเมตุร กซึ่ a จากตุ�วิอย*างท&-แล0วิให0เป;น 0 ให0ใช0ค์(าส�-งด�งตุ*อไปน&'
จะเห9นได0วิ*าค์*าสมาช กขึ้อง a ในแถูวิท&- 2 ค์อล�มนท&- 3 ได0เปล&-ยนจาก 8 เป;น 0
18
The Colon (:) Operator
The colon operator เป;นตุ�วิช*วิยในการ list ตุ(าแหน*งขึ้องสมาช กในเมตุร กซึ่ให0สะดวิกและเร9วิขึ้,'น ในกรณ&ท&-จ(านวินสมาช กในเมทร กซึ่ม&จ(านวินมาก แบับัฟอรมขึ้องการใช0 colon ม&ด�งน&'
first:incr:lastโดยท&- first เป;นตุ�วิเลขึ้ตุ�วิแรกในล(าด�บั incr ค์2อการเพิ -มในแตุ*ละขึ้�'น และ last ค์2อ
ตุ�วิเลขึ้ส�ดท0ายในล(าด�บั ยกตุ�วิอย*างเช*น >> 1:2:9MATLAB จะแสดงผลค์2อ
ans = 1 3 5 7 9น�-นค์2อ ล(าด�บัเร -มตุ0นท&- 1 เพิ -มขึ้,'นท&ละ 2 และจบัท&- 9ในกรณ&ท&- incr ค์2อ 1 เราสามารถูละเวิ0นการเขึ้&ยนล(าด�บัการเพิ -ม และเขึ้&ยนค์(าส�-ง
ให0ส�'นลงเป;น>> 5:8
MATLAB จะแสดงผลค์2อans = 5 6 7 8
19
การใช้� colon ก�บื้สมืาช้!กในเมืทร!กซ์$สมมตุ ให0 a ค์2อ
หากเราตุ0องการให0 b เป;นเมทร กซึ่ซึ่,-งม&สมาช กขึ้อง a จาก row ท&- 2 และ column ท&- 3 เป;นตุ0นไป ใช0ค์(าส�-ง
ซึ่,-ง 2:3 แสดงจ(านวินแถูวิจากแถูวิท&- 2 ถู,งแถูวิท&- 3 และ 3:5 ค์2อค์อล�มนท&- 3, 4, และ 5
หร2อผ/0เขึ้&ยนสามารถูใช0ค์(าส�-ง >> b = a([2 3],[3 4 5]) ซึ่,-งจะได0ผลล�พิธเด&ยวิก�น
1 2 3 4 5
a 6 7 8 9 10
11 12 13 14 15
b a(2 : 3, 3 : 5)
b
8 9 10
13 14 15
20
ในกรณ&ท&-ตุ0องการเปล&-ยนค์*าสมาช กท�'งแถูวิหร2อท�'งค์อล�-มน เราใช0เค์ร2-องหมาย colon อย*างเด&ยวิได0 ยกตุ�วิอย*างเช*น
>> a(2, :) = 5; ค์(าส�-งน&'เปล&-ยนค์*าสมาช กใน row 2 ท�'งหมดขึ้อง a เป;น 5
ซึ่,-งเค์ร2-องหมาย : แทนจ(านวินค์อล�มนจากค์อล�มนท&- 1 ถู,งค์อล�มนส�ดท0าย น�-นค์2อ สมาช กขึ้อง a แถูวิท&- 2 ค์อล�มนท&- 1 ถู,งค์อล�มนส�ดท0ายม&ค์*าเป;น 5
>> a(:, 3) = -1; ค์(าส�-งน&'เปล&-ยนค์*าสมาช กใน column 3 ท�'งหมดขึ้อง a เป;น -1
เค์ร2-องหมาย : ในตุ�วิอย*างน&'แทนแถูวิท&- 1 ถู,งแถูวิส�ดท0าย น�-นค์2อ สมาช กขึ้อง a แถูวิท&- 1 ถู,งแถูวิส�ดท0าย ค์อล�มนท&- 3 จะม&ค์*าเป;น -1
21
The ‘end’ Function
MATLAB ม&ฟ=งกช�-นพิ เศษช2-อ end เพิ2-อใช0ในการระบั�ตุ(าแหน*งในเมทร กซึ่ ฟ=งกช�-น end ให0ค์*าส/งส�ดในแตุ*ละแถูวิหร2อค์อล�มนท&-ถู/กเร&ยกใช0 ยกตุ�วิอย*างเช*น
ถู0า
>> b = a(2:end, 3:end)
จะให0ผลล�พิธเด&ยวิก�นก�บัค์(าส�-งในสไลดหน0า 19 โดยท&- end ตุ�วิแรกจะม&ค์*าเป;น 3 ซึ่,-งเป;นค์*าส/งส�ดขึ้องจ(านวินแถูวิขึ้อง a ส*วิน end ตุ�วิท&-สองจะม&ค์*าเป;น 5 ซึ่,-งเป;นค์*าส/งส�ดขึ้องจ(านวินค์อล�มนขึ้อง a
1 2 3 4 5
a 6 7 8 9 10
11 12 13 14 15
22
Vector
เวิกเตุอร (vector) ถู2อได0วิ*าเป;น subset ขึ้องเมตุร กซึ่ โดยม&ขึ้นาดขึ้องแถูวิหร2อค์อล�มนเป;น 1
ยกตุ�วิอย*างเช*น
สร0าง row vector c ท&-ม&ขึ้นาด array เป;น 1x3 และม&สมาช ก 3 จ(านวินค์2อ 1.0, 2.5, และ 3.0 ตุามล(าด�บั
ค์(าส�-งน&'สร0าง column vector d ท&-ม&ขึ้นาด array
เป;น 3x1 และม&สมาช ก 3 จ(านวิน เป;นตุ0น
23
การเร�ยกสมืาช้!กในเวกเต้อร$
การเร&ยกสมาช กในเวิกเตุอรก9ท(าได0ในล�กษณะเด&ยวิก�นก�บัการเร&ยกสมาช กในเมทร กซึ่ ยกตุ�วิอย*างเช*น
>>a = [1 3 5 8 9];
เราสามารถูเร&ยกสมาช กตุ�วิท&- 3 ขึ้องเวิกเตุอร a ได0โดยใช0ค์(าส�-ง>>a(3) หร2อ >>a(1, 3)
ซึ่,-งจะได0ผลล�พิธค์2อ ans = 5
การเร&ยกสมาช กตุ�วิส�ดท0ายขึ้อง a ก9ท(าได0โดยค์(าส�-ง>>a(end) หร2อ >> a(5) หร2อ >>a(1, 5)
ซึ่,-งจะได0ผลล�พิธค์2อ ans = 9
24
Transpose Operator (')
Transpose operator (') เปล&-ยนแถูวิเป;นค์อล�มนหร2อเปล&-ยนค์อล�มนเป;นแถูวิ ยกตุ�วิอย*างเช*น
>> f = [1:4] ซึ่,-ง MATLAB จะแสดงผล f เป;น row vector ขึ้นาด 1x4
f = 1 2 3 4
เวิลา transpose เวิกเตุอร f จะได0ผลล�พิธด�งตุ*อไปน&'
ซึ่,-งเป;น column vector ขึ้นาด 4x1
25
การสร�างเมืทร!กซ์$จากการรวมืเวกเต้อร$เราสามารถูสร0างเมทร กซึ่ใหม*ขึ้,'นมาได0ด0วิยการรวิมเมทร กซึ่(หร2อเวิก
เตุอร)เขึ้0าด0วิยก�น ท(าได0ด�งน&'>> g = [1 3; 2 7];
>> b = [4; 9];
>> h = [g b]
จะสร0างเมทร กซึ่
>> m = [b'; g]
จะสร0างเมทร กซึ่
1 3 4h
2 7 9
4 9
m 1 3
2 7
26
การลี่ดขนาดของเมืทร!กซ์$หร�อเวกเต้อร$การลดขึ้นาดขึ้องเมทร กซึ่หร2อเวิกเตุอรท(าได0โดยการใช0 an empty array [ ]
ตุ�วิอย*างเช*น ถู0าเราตุ0องการลบัค์อล�มนท&- 2 ขึ้องเมทร กซึ่ ท(าได0โดย
การใช0ค์(าส�-ง
>> h(:, 2) = [ ]
ซึ่,-ง MATLAB จะแสดงผลขึ้องค์*าตุ�วิแปร h ใหม*เป;น
ซึ่,-งขึ้นาดขึ้องตุ�วิแปร h จะม&ค์*าใหม*เป;น 2x2
เช*นเด&ยวิก�นก�บัการลดขึ้นาดขึ้องเวิกเตุอร ถู0าเวิกเตุอร a ม& 5 สมาช กด�งตุ*อไปน&'>>a = [3 9 0 1 5];
หากเราตุ0องการลบัสมาช กตุ�วิท&- 1 ก9ท(าได0โดยใช0ค์(าส�-ง >>a(1) = [ ]
ซึ่,-ง MATLAB จะแสดงผลขึ้องค์*าตุ�วิแปร h ใหม*เป;น a = [9 0 1 5]
1 3 4h
2 7 9
1 4h
2 9
27
MATLAB Functions for Initializing Variables
Function Purpose
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)
Generates an n × n matrix of zeros
Generates an n × m matrix of zeros
Generates a matrix of zeros of the same size as arr
Generates an n × n matrix of ones
Generates an n × m matrix of ones
Generates a matrix of ones of the same size as arr
Generates an n × n identity matrix
Generates an n × m identity matrixReturns the length of a vector, or the longest dimension of a 2-D array
Returns two values specifying the number of rows and columns in arr