27
คคคคคคคคคคคคคคค MATLAB คคคคคค คคค ดด.ดดดดดดดด ดดดดดดดดดดด charturong.ee.engr.tu.ac.th/CN208 ดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดด ดดดดดดดดดดดดดดดดดดดดด ดดดดดดดดดดดดดดดดดดดดดดดดดดดดดด ดด.ดดดดด ดดดด

คู่มือการใช้งาน MATLAB เบื้องต้น

  • 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

Page 1: คู่มือการใช้งาน  MATLAB  เบื้องต้น

คู่��มื�อการใช้�งาน MATLAB เบื้��องต้�น

ดร.จาตุ�รงค์ ตุ�นตุ บั�ณฑิ ตุcharturong.ee.engr.tu.ac.th/CN208

ภาค์วิ ชาวิ ศวิกรรมไฟฟ�าและค์อมพิ วิเตุอรมหาวิ ทยาล�ยธรรมศาสตุร

เอกสารประกอบัการสอนน&'จ�ดท(าโดย ดร.ทรงยศ นาค์อร ยก�ล

Page 2: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 3: คู่มือการใช้งาน  MATLAB  เบื้องต้น

3

หน�าต้�าง MATLAB

1

2

3

Page 4: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 5: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 6: คู่มือการใช้งาน  MATLAB  เบื้องต้น

6

หน�าต้�าง Help

Page 7: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 8: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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 ?

Page 9: คู่มือการใช้งาน  MATLAB  เบื้องต้น

9

Special Symbols

Operation Symbol

Addition

Subtraction

Multiplication

Division

Exponentation

+

-

*

/

^

Page 10: คู่มือการใช้งาน  MATLAB  เบื้องต้น

10

ต้�วแปิร หร�อ Variable

ตุ�วิแปร (variable) ค์2อหน*วิยค์วิามจ(าท&-ถู/กก(าหนดขึ้,'นโดยผ/0ใช0 ซึ่,-งค์*าขึ้องตุ�วิแปรสามารถูถู/กเปล&-ยนแปลงได0ตุลอดเวิลาโดยผ/0ใช0ด0วิยการใส*ค์(าส�-ง command ตุ�วิอย*างเช*น

ก(าหนดตุ�วิแปรช2-อ var ให0ม&ค์*า 15 ท(าได0โดยการพิ มพิ >>var = 15 ท&- command window

Page 11: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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-อก�นการผ ดพิลาด

Page 12: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 13: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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 ตุ�วิ

Page 14: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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องเท*าก�น

ยกตุ�วิอย*างเช*น

Page 15: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 16: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 17: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 18: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 19: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 20: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 21: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 22: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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น

Page 23: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 24: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 25: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 26: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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

Page 27: คู่มือการใช้งาน  MATLAB  เบื้องต้น

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