SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
บทที่    1
                        ความรู้พ้นฐาน MATLAB
                                 ื
1.1 บทนํา
        MATLAB เป็ นโปรแกรมที่ ได้รับการออกแบบมาเพื่อใช้ในการคํานวณทางคณิ ตศาสตร์
โดยเฉพาะอย่างยิ่งกับงานทางวิศวกรรมและวิทยาศาสตร์ โครงสร้ างพื้นฐานการคํานวณของ
โปรแกรม MATLAB อยู่ในรู ปของเวกเตอร์ หรื อเมทริ กซ์ ซึ่ งก็เ ป็ นที่ มาของชื่ อโปรแกรมด้ว ย
กล่าวคือ MATLAB เป็ นคําย่อของคําสองคําในภาษาอังกฤษคือ MATrix LABoratory จุดเด่นของ
โปรแกรม MATLAB คือการที่มีชุดคําสังจํานวนมากสําหรับใช้ในการประมวลผลข้อมูลที่บรรจุอยู่
                                       ่
ในเมทริ กซ์ครอบคลุมทฤษฎีทางคณิ ตศาสตร์ ท้ งที่เป็ นพื้นฐานและการประยุกต์อย่างกว้างขวาง ที่
                                             ั
สําคัญเราสามารถใช้งานโปรแกรมในการแก้ปัญหาต่าง ๆ ได้อย่างรวดเร็ วและมีประสิ ทธิ ภาพสู ง
มาก นอกจากนี้ MATLAB ยังได้พฒนา GUI (Graphical User Interface) ที่เป็ นระบบระเบียบทํา
                                    ั
ให้ ก ารสร้ า งโปรแกรมประยุ ก ต์เ ฉพาะตามที่ ผูใ ช้ต ้อ งการสามารถทํา ได้โ ดยง่ า ย นอกจากนี้
                                               ้
MATLAB ยังได้พฒนาโปรแกรมสําคัญอีกส่ วนหนึ่ งที่เรี ยกว่า Simulink เพื่อใช้จาลองการทํางาน
                        ั                                                     ํ
ของระบบหรื อกระบวนการที่เราสนใจ โดยผูใช้งานสามารถเชื่อมต่อองค์ประกอบย่อยแต่ละส่ วน
                                           ้
ของระบบหรื อกระบวนการเข้าด้วยกันในรู ปของบล็อกที่ง่าย สะดวกต่อการใช้งาน แทนที่จะต้อง
พิ ม พ์ชุ ด คํา สั่ ง MATLAB จํา นวนมาก การทดสอบระบบต่ า ง ๆ จึ ง ทํา ได้อ ย่า งรวดเร็ ว และมี
ประสิ ทธิ ภาพ ในปั จจุบนมีการใช้งาน Simulink แพร่ หลายมากขึ้นโดยเฉพาะงานด้านการควบคุม
                          ั
2   การประยุกต์ใช้ MATLAB


อุตสาหกรรม คุณสมบัติที่ดีเยียมเหล่านี้ทาให้ในปัจจุบนมีการนํา MATLAB มาใช้เป็ นเครื่ องมือใน
                            ่          ํ           ั
                                         ั
การเรี ยนการสอนหรื อนําไปประยุกต์ใช้กบงานวิจยอย่างแพร่ หลาย
                                               ั
          การเรี ยนรู ้ วิธีใช้งานโปรแกรม MATLAB ในระดับพื้นฐานจัดว่าเป็ นเรื่ องที่ไม่ยากนัก
และโดยทัวไปจะพบว่า นิ สิตนักศึกษาหรื อนักวิชาการสามารถใช้งาน MATLAB ขั้นพื้นฐานได้
           ่
ทันทีหลังจากที่ได้ทดลองใช้งานด้วยตนเองตามตัวอย่างที่อธิ บายในบทที่ 1 นี้ ดังนั้น รู ปแบบการ
อธิ บ ายในบทนี้ จึ ง เน้น การใช้ตว อย่า งเป็ นหลัก เพื่อ ให้ผูอ่านสามารถทราบถึ ง แนวทางการใช้
                                    ั                         ้
ประโยชน์จากโปรแกรม MATLAB ได้อย่างรวดเร็ วและมีประสิ ทธิ ผล แนวทางการอ่านเพื่อทํา
ความเข้าใจในบทนี้ จึงตรงไปตรงมา คือ ให้ผเู ้ รี ยนทดลองพิมพ์คาสั่งตามตัวอย่างไปทีละบรรทัด
                                                                   ํ
จนครบทั้ง บทเพราะการลงมื อ พิ ม พ์ค า สั่ ง เองเป็ นปั จ จัย หลัก ที่ จ ะช่ ว ยให้ ผู ้อ่ า นสามารถทํา
                                           ํ
ความคุนเคยและเข้าใจหลักการพื้นฐานของ MATLAB ได้อย่างรวดเร็ ว เนื้อหาที่จะกล่าวถึงต่อไป
        ้
มีการเรี ยงลําดับดังนี้ การใช้คาสั่งสําหรับการสร้างตัวแปรในรู ปของเวกเตอร์หรื อเมทริ กซ์ ฟังก์ชน
                                  ํ                                                                 ั
พื้นฐานสําหรั บการสร้าง เมทริ กซ์ ฟั งก์ชนการวาดกราฟ การบวกลบคูณหารอย่างง่าย และการ
                                             ั
กําหนดรู ปแบบการแสดงผลตัวเลข
1.2   การสร้ างตัวแปรเวกเตอร์ และเมทริกซ์
                                                      ่
        การคํานวณต่าง ๆ ในโปรแกรม MATLAB อยูบนพื้นฐานของตัวแปรที่กาหนดในรู ปของ ํ
เวกเตอร์ (vector) และเมทริ กซ์ (matrix) เป็ นหลัก ดังนั้น การเรี ยนรู ้โปรแกรม MATLAB เพื่อให้
สามารถใช้งานได้อย่างมี ประสิ ทธิ ภาพ ผูใช้งานจําเป็ นต้องเข้าใจถึงหลักการและวิธีการสร้ าง
                                            ้
ตัวแปรเหล่านี้ให้ถ่องแท้ก่อน
           ในลําดับแรกจะแสดงวิธีสร้ างตัวแปร x ที่เป็ นเวกเตอร์ แถว (row vector) โดยใช้คาสั่ง
                                                                                        ํ
ต่อไปนี้
>> x = [1 2 3 4]

และผลลัพธ์ที่ได้คือ
x =
           1      2        3         4
บทที่ 1 ความรู ้พ้ืนฐาน MATLAB     3



สัง เกตว่า สมาชิ ก หรื อเอลิ เ มนต์ (element) แต่ ล ะตัว ในเวกเตอร์ x จะเขี ย นแยกจากกัน โดยใช้
ช่องว่างหรื ออาจจะใช้เครื่ องหมาย “,” ได้ดวยเช่นกัน ดังนี้
                                              ้
>> x = [1,2,3,4]

                               ่
ผลลัพธ์ที่ได้เหมือนกับกรณี ที่ผานมาคือ
x =
          1          2    3        4

หากต้องการเมทริ กซ์ทรานส์โพสของ x ก็สามารถทําได้โดยง่าย ดังนี้
>> y = x'

ซึ่งจะได้ตวแปร y ขึ้นมาใหม่ที่เป็ นเมทริ กซ์ทรานส์โพสของ x และผลลัพธ์ที่ได้บนจอแสดงผลคือ
          ั
y =
          1
          2
          3
          4

หากต้องการกําหนดเมทริ กซ์ที่มีขนาด 34 ขึ้นมาใช้งาน ให้กระทํา ดังนี้
>> A = [1 2 3 4; 5 6 7 8; 9 10 11 12]

ซึ่งจะได้ผล ดังนี้
A =
          1        2      3       4
          5        6      7       8
          9       10     11      12

สังเกตว่าเครื่ องหมาย “;” ใช้สําหรั บระบุว่าเป็ นจุดสิ้ นสุ ดของแต่ละแถว ถึงตรงนี้ เราอาจจะใช้
คําสั่ง who หรื อ whos เพื่อขอดูตวแปรทั้งหมดที่ได้มีการสร้างขึ้นในหน้าต่างที่ใช้งานอยู่หรื อที่
                                   ั
เรี ยกว่า พื้นที่ทางาน (workspace) หากใช้คาสัง who ก็จะได้ผลเป็ น
                  ํ                       ํ ่
>> who
Your variables are:
A     x       y

หรื อถ้าต้องการทราบขนาดหรื อหน่วยความจําของตัวแปรแต่ละตัวด้วย ให้ใช้คาสัง whos แทน
                                                                     ํ ่
>> whos
4   การประยุกต์ใช้ MATLAB

    Name             Size                 Bytes     Class
    A                3x4                      96    double array
    x                1x4                      32    double array
    y                4x1                      32    double array
Grand total is 20 elements using 160 bytes

ในกรณี ที่ตองการทราบขนาดของตัวแปรตัวใดตัวหนึ่ง ให้ใช้คาสัง size(x) ยกตัวอย่างเช่น
           ้                                          ํ ่
>> size(x)

ผลลัพธ์ที่ได้จะเป็ น
ans =
        1         4

ซึ่ งบอกเราว่าเมทริ กซ์ x มีขนาดเท่ากับ 14 คือมีเพียงแถวเดียวและมีสี่คอลัมน์ สังเกตว่าคําสั่งนี้
ไม่มีการนําค่าของฟั งก์ชน size(x) ไปใส่ ลงในตัวแปรใด ๆ ดังในกรณี ก่อนหน้า ในกรณี เช่นนี้
                         ั
MATLAB จะบรรจุผลลัพธ์ที่ได้ลงในตัวแปรที่มีชื่อเฉพาะว่า ans เสมอ

เราสามารถอ้างถึงหรื อกําหนดค่าให้แก่สมาชิกแต่ละตัวในเมทริ กซ์ได้โดยอาศัยรู ปแบบ ดังนี้
>> x = A(2,3)

คําสั่งนี้ ให้นาค่าของสมาชิกในแถวที่สองและคอลัมน์ที่สามของเมทริ กซ์ A ไปบรรจุลงในตัวแปร
               ํ
            ํ
x ที่ได้กาหนดขึ้นใหม่ ผลลัพธ์ที่ได้เป็ นดังนี้ คือ
x =
        7

แต่หากต้องการสมาชิกทั้งแถวจากเมทริ กซ์ A เช่น ต้องการสมาชิกทั้งหมดในแถวที่ 3 ไปเก็บลงใน
               ํ
เวกเตอร์ y ที่กาหนดขึ้นมาใหม่ให้สงดังนี้
                                 ั่
>> y = A(3,:)

สังเกตว่ามีการใช้เครื่ องหมาย “:” เพื่อระบุช่วงของคอลัมน์ และผลลัพธ์ที่ได้บนจอภาพ คือ
y =
        9       10          11    12

เพื่อให้เห็นภาพการใช้งานเครื่ องหมาย “:” ที่ชดเจนขึ้น จะยกตัวอย่างคําสั่งต่อไปนี้ซ่ ึ งดึงสมาชิก
                                             ั
ในแถวที่สองของเมทริ กซ์ A เฉพาะในคอลัมน์ที่ 1 ถึง 3 เท่านั้น
>> y = A(2,1:3)
บทที่ 1 ความรู ้พ้ืนฐาน MATLAB         5



ผลที่ได้บนจอแสดงผลคือ
y =
        5          6         7

จะเห็นว่าตัวเลขที่อยูก่อนหน้าและหลังเครื่ องหมาย “:” เป็ นตัวระบุช่วงของคอลัมน์ที่ตองการ
                     ่                                                             ้
สําหรั บตัวอย่างที่ซับซ้อนขึ้นอี กเล็กน้อยก็คือการดึ งสมาชิ กในแถวที่หนึ่ งและสองโดยที่ สนใจ
เฉพาะสมาชิกในคอลัมน์ที่สองและสามเท่านั้น ซึ่งจะใช้คาสังดังนี้
                                                        ํ ่
>> y = A(1:2,2:3)
y =
        2          3
        6          7

หากต้องการเฉพาะสมาชิกตั้งแต่คอลัมน์ที่สองไปจนถึงคอลัมน์สุดท้ายในแถวที่หนึ่งเท่านั้น ให้ใช้
คําสังดังนี้
     ่
>> y = A(1,2:end)
y =
         2         3          4

ตัวอย่างก่ อนหน้านี้ ลวนแล้วแต่กาหนดช่ วงของแถวหรื อคอลัมน์ที่ต่อเนื่ องกันทั้งสิ้ น ในกรณี ที่
                      ้          ํ
ต้อ งการดึ ง สมาชิ ก ในแถวหรื อ คอลัม น์ ที่ไ ม่ ติ ด กัน ออกมาหรื อ จะดึ ง ซํ้า มากกว่ าหนึ่ ง ครั้ ง เช่ น
ต้องการอ้างถึงสมาชิกในคอลัมน์ที่หนึ่ง คอลัมน์ที่สี่ และคอลัมน์ที่สี่อีกครั้ง ให้ใช้คาสังดังนี้
                                                                                        ํ ่
>> y = A(:,[1 4 4])
y =
        1         4         4
        5         8         8
        9        12        12

คําสังการลบแถวหรื อคอลัมน์ของเมทริ กซ์กน่าสนใจเช่นกัน และสามารถทําได้โดยใช้คาสังดังนี้
     ่                                 ็                                    ํ ่
>> A(1,:) = []

คําสังนี้เป็ นการลบสมาชิกทั้งหมดในแถวที่หนึ่งของเมทริ กซ์ A ซึ่งผลลัพธ์เป็ นดังนี้
     ่
A =
        5         6         7          8
        9        10        11         12
6   การประยุกต์ใช้ MATLAB


และถ้าจะลบสมาชิกทั้งหมดในคอลัมน์ที่สี่ของเมทริ กซ์ A ให้กระทําดังนี้
>> A(:,4) = []
A =
       5        6        7
       9       10       11

ในโปรแกรม MATLAB การนําเมทริ กซ์หลายชุดมาประกอบกันให้ได้เป็ นเมทริ กซ์ที่มีขนาดใหญ่
ขึ้นก็สะดวกมาก ยกตัวอย่างเช่น
>> A = [0 0; 1 1; 2 2];
>> B = [3 3; 4 4; 5 5];
>> C = [A B]
C =
       0        0        3         3
       1        1        4         4
       2        2        5         5

เป็ นคําสั่งการต่อเมทริ กซ์ A และ B ในแนวนอนและได้เป็ นเมทริ กซ์ C ที่มีขนาดใหญ่ข้ ึน สังเกตว่า
เครื่ องหมาย “;” ที่ปิดท้ายคําสั่งในสองบรรทัดแรกเป็ นการบอกโปรแกรม MATLAB ว่าไม่ตอง         ้
แสดงผลออกบนจอภาพ เครื่ องหมายนี้เป็ นประโยชน์มากหากเราไม่ตองการเห็นผลลัพธ์ของคําสัง
                                                                  ้                           ่
บางบรรทัด สําหรับการต่อเมทริ กซ์ในแนวตั้งก็สามารถกระทําได้เช่นกันดังนี้
C = [A;B]
C =
       0        0
       1        1
       2        2
       3        3
       4        4
       5        5


คําสังการสร้างเวกเตอร์อีกรู ปแบบหนึ่งที่เป็ นประโยชน์และมีการใช้งานบ่อยครั้งมาก คือ การสร้าง
     ่
เวกเตอร์ที่สมาชิกมีค่าเพิ่มขึ้นหรื อลดลงอย่างเป็ นระบบ เช่น ต้องการสร้างเวกเตอร์ขนาด 11,000
โดยบรรจุตวเลขจํานวนเต็มเรี ยงลําดับตั้งแต่ 1 ถึง 1,000 การสร้างตัวแปรดังกล่าวนี้ ดวยการพิมพ์
            ั                                                                     ้
โดยตรงด้วยมือต้องใช้เวลานานมาก ในกรณี เช่นนี้ผใช้สามารถพิมพ์คาสังสั้น ๆ ดังต่อไปนี้ได้ทนที
                                                    ู้             ํ ่                   ั
>> D = 1:1:1000;
บทที่ 1 ความรู ้พ้ืนฐาน MATLAB        7



คําสังในลักษณะนี้สามารถนํามาใช้งานได้อย่างกว้างขวาง เช่น ต้องการเวกเตอร์แถวที่บรรจุตวเลข
     ่                                                                              ั
จํานวนคู่เรี ยงตั้งแต่ 10 ถึง 20 ให้ใช้คาสังดังนี้
                                        ํ ่
>> D = 10:2:20
D =
       10       12        14         16        18        20

หากต้องการเวกเตอร์ แถวที่บรรจุตวเลขเรี ยงจากมากไปน้อย เริ่ มต้นตั้งแต่ 20 ไปจนถึง -20 โดย
                               ั
ลดลงทีละ 5 ให้ใช้คาสังดังนี้
                  ํ ่
>> D = 20:-5:-20
D =
       20       15        10          5         0        -5      -10       -15       -20

ถ้าต้องการเวกเตอร์ที่บรรจุตวเลขตั้งแต่ -1 ถึง 1 โดยเพิมขึ้นทีละ 0.5 ก็สามารถทําได้ดงนี้
                           ั                          ่                            ั
>> D = -1:0.5:1
D =
      -1.0000         -0.5000                   0        0.5000           1.0000

ในกรณี ที่ตวเลขที่เพิ่มขึ้นแต่ละครั้งมีค่าเท่ากับหนึ่งเราสามารถเขียนคําสังให้ส้ นลงได้เป็ น
           ั                                                             ่      ั
>> D = 5:8
D =
        5         6         7         8

1.3   ฟังก์ ชันพืนฐานสํ าหรับการสร้ างเมทริกซ์
                 ้
        หัวข้อที่ ผ่านมากล่าวถึ งการสร้ างตัวแปรในรู ปของเวกเตอร์ หรื อเมทริ กซ์อย่างง่ ายและ
ตรงไปตรงมา อย่างไรก็ตาม ในการประยุกต์ใช้งานโดยทัวไปมักจะมี การสร้ างเมทริ กซ์ที่มีค่า
                                                               ่
เฉพาะหรื อมีรูปลักษณ์ที่เป็ นมาตรฐาน เช่ น ต้องการสร้ างเมทริ กซ์ที่มีค่าเป็ นศูนย์ท้ งหมดขนาด   ั
mxn โดย m และ n มี ข นาดใหญ่ ม าก หากสร้ า งเมทริ ก ซ์ ที่ ว่ า นี้ ด ้ว ยวิ ธี ก ารพิ ม พ์ค่ า โดยตรงตาม
รู ป แบบที่ ไ ด้อ ธิ บ ายในส่ ว นที่ แ ล้ว จะเสี ย เวลามากและอาจเกิ ด ข้อ ผิด พลาดได้ง่ า ย ดัง นั้น ใน
MATLAB จึงได้เตรี ยมฟั งก์ชนพื้นฐานจํานวนหนึ่ งไว้สาหรับใช้งาน
                                 ั                         ํ
8   การประยุกต์ใช้ MATLAB


ตารางที่ 1.1 ฟังก์ชนพื้นฐานสําหรับสร้างเมทริ กซ์
                   ั
 zeros                เมทริ กซ์ที่มีสมาชิกเป็ น 0 ทั้งหมด
 ones                 เมทริ กซ์ที่มีสมาชิกเป็ น 1 ทั้งหมด
 eye                  เมทริ กซ์เอกลักษณ์ (identity matrix)
 diag                 เมทริ กซ์จตุรัสที่มีค่าในแนวทแยงมุมตามที่กาหนด
                                 ั                              ํ
 triu                 เมทริ กซ์ที่มีค่าเฉพาะในส่ วนของสามเหลี่ยมด้านบน
 tril                 เมทริ กซ์ที่มีค่าเฉพาะในส่ วนของสามเหลี่ยมด้านล่าง
 rand                 เมทริ กซ์ที่มีสมาชิกเป็ นจํานวนสุ่ ม
 hilb                 เมทริ กซ์ฮิลเบิร์ต (Hilbert matrix)
 magic                เมทริ กซ์จตุรัสที่ มีผลรวมของค่าในแถว คอลัมน์ และแนวทแยงมุมเท่ากัน
                                   ั
                      ทั้งหมด
 hadamard             เมทริ กซ์ Hadamard
 vander               เมทริ กซ์ Vandermonde
 toeplitz             เมทริ กซ์ Toeplitz

ฟังก์ชัน zero(m,n)
        ฟั ง ก์ ชั น zero(m,n) ให้ ก ํา เนิ ด เมทริ กซ์ ข นาด mxn ที่ มี ส มาชิ ก เป็ นศู น ย์ท้ ัง หมด
ยกตัวอย่างเช่น
>> zeros(2,5)
ans =
        0         0         0        0         0
        0         0         0        0         0

ฟังก์ชัน ones(m,n)
       ฟั งก์ชน ones(m,n) คล้ายคลึงกับคําสั่ง zero(m,n) มาก เพียงแต่เมทริ กซ์ที่ได้จะมี
              ั
สมาชิกเป็ นหนึ่งทั้งหมด ยกตัวอย่างเช่น
>> ones(3,4)
ans =
บทที่ 1 ความรู ้พ้ืนฐาน MATLAB    9



        1       1        1         1
        1       1        1         1
        1       1        1         1

ฟังก์ ชัน eye(n)
             ั                 ํ
      ฟั งก์ชน eye(n) ให้กาเนิ ดเมทริ กซ์จตุรัสที่มีสมาชิ กเป็ นศูนย์ท้ งหมดยกเว้นสมาชิ กใน
                                                 ั                          ั
แนวทแยงมุมที่มีค่าเป็ นหนึ่ง ฉะนั้น เมทริ กซ์ที่ได้คือเมทริ กซ์เอกลักษณ์นนเอง ยกตัวอย่างเช่น
                                                                         ั่
>> eye(3)
ans =
        1       0        0
        0       1        0
        0       0        1

                   ั               ํ
แท้จริ งแล้วฟั งก์ชน eye สามารถให้กาเนิ ดเมทริ กซ์ที่ไม่ใช่เมทริ กซ์จตุรัสได้ดวย การใช้งานเป็ น
                                                                     ั        ้
ดังนี้
>> eye(2,4)
ans =
        1       0        0         0
        0       1        0         0

สังเกตว่า ฟั งก์ชนสามารถมีรูปแบบการใช้ที่ต่างกันได้มากกว่าหนึ่ งรู ปแบบ โดยขึ้นอยูกบจํานวน
                 ั                                                               ่ ั
และรายละเอียดของอาร์ กิวเมนต์ที่ป้อนให้แก่ฟังก์ชน ใน MATLAB มีคาสั่ง help ที่ใช้สาหรับ
                                                  ั                   ํ              ํ
อธิบายรายละเอียดรู ปแบบและการใช้งานของฟั งก์ชน เช่น เราต้องการทราบวิธีการใช้งานฟังก์ชน
                                                ั                                        ั
eye ให้พิมพ์คาสังดังนี้
                ํ ่
>> help eye
 EYE Identity matrix.
    EYE(N) is the N-by-N identity matrix.

      EYE(M,N) or EYE([M,N]) is an M-by-N matrix with 1's on
      the diagonal and zeros elsewhere.

      EYE(SIZE(A)) is the same size as A.

      See also ONES, ZEROS, RAND, RANDN.

จะเห็ น ว่ า ฟั ง ก์ชัน eye มี ก ารใช้ง านได้ส องลัก ษณะคื อ eye(n) และ eye(m,n) สํา หรั บ
ฟังก์ชน zeros หรื อ ones ก็เช่นเดียวกันมีรูปแบบการใช้งานได้หลายลักษณะ หากลองใช้คาสั่ง
      ั                                                                               ํ
10   การประยุกต์ใช้ MATLAB


help เพื่ อ ดู วิ ธี ก ารใช้ฟั ง ก์ ช ัน zeros หรื อ ones จะพบว่ า   ฟั ง ก์ชัน ทั้ง สองสามารถใช้ส ร้ า ง
เมทริ กซ์ที่มีมากกว่าสองมิติได้ ยกตัวอย่างเช่น
>> ones(3,4,2)
ans(:,:,1)        =
     1            1        1         1
     1            1        1         1
     1            1        1         1
ans(:,:,2)        =
     1            1        1         1
     1            1        1         1
     1            1        1         1

ดังนั้น การอ้างถึงสมาชิกในเมทริ กซ์สามมิติจึงต้องใส่ ดชนี ถึง 3 ค่า ยกตัวอย่างเช่น เราประสงค์จะ
                                                       ั
เปลี่ยนค่าของสมาชิกตัวหนึ่งให้มีค่าเป็ น 5 ให้ทาดังนี้
                                               ํ
>> ans(1,1,2) = 5
ans(:,:,1)        =
     1            1        1         1
     1            1        1         1
     1            1        1         1
ans(:,:,2)        =
     5            1        1         1
     1            1        1         1
     1            1        1         1

ฟังก์ชัน diag(x)
                             ํ
       ฟั งก์ชัน diag(x) ให้กาเนิ ดเมทริ กซ์จตุรัสที่มีสมาชิ กเป็ นศูนย์ท้ งหมดยกเว้นในแนว
                                             ั                             ั
ทแยงมุมที่บรรจุสมาชิกของเวกเตอร์ x ยกตัวอย่างเช่น
>> x = [1 3 5 7];
>> diag(x)
ans =
        1         0        0         0
        0         3        0         0
        0         0        5         0
        0         0        0         7

อย่างไรก็ตาม ถ้า x ที่ป้อนเข้าฟังก์ชน diag(x) เป็ นเมทริ กซ์จตุรัส ผลลัพธ์ที่ได้จะเป็ นเวกเตอร์ที่
                                    ั                        ั
ประกอบด้วยสมาชิกในแนวทแยงมุมของเมทริ กซ์ x ยกตัวอย่างเช่น
>> x = [1 2;3 4]

Weitere ähnliche Inhalte

Ähnlich wie 9789740329923

9789740332985
97897403329859789740332985
9789740332985CUPress
 
9789740328766
97897403287669789740328766
9789740328766CUPress
 
นาย ภานุวัฒน์ สอนพงษ์-58170118-กลุ่ม01-matlab
นาย ภานุวัฒน์ สอนพงษ์-58170118-กลุ่ม01-matlabนาย ภานุวัฒน์ สอนพงษ์-58170118-กลุ่ม01-matlab
นาย ภานุวัฒน์ สอนพงษ์-58170118-กลุ่ม01-matlabWasan Larreng
 
นายสมรัก สุขโศตร์ 58670153 กลุ่ม3302
นายสมรัก สุขโศตร์ 58670153 กลุ่ม3302นายสมรัก สุขโศตร์ 58670153 กลุ่ม3302
นายสมรัก สุขโศตร์ 58670153 กลุ่ม3302Nawarat Sornchai
 
บทนำ1
บทนำ1บทนำ1
บทนำ1Ssab Sky
 
ฺBasic vector algebra in 2 dimension and 3 dimension
ฺBasic vector algebra in 2 dimension and 3 dimensionฺBasic vector algebra in 2 dimension and 3 dimension
ฺBasic vector algebra in 2 dimension and 3 dimensionTeerawutSavangboon
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ Areeya Onnom
 
บทนำ
บทนำบทนำ
บทนำSsab Sky
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานPrapatsorn Keawnoun
 
นาย ทรงพล สายทอง-58170105-กลุ่ม-01
นาย ทรงพล สายทอง-58170105-กลุ่ม-01นาย ทรงพล สายทอง-58170105-กลุ่ม-01
นาย ทรงพล สายทอง-58170105-กลุ่ม-01Wasan Larreng
 
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริงNaphamas
 

Ähnlich wie 9789740329923 (20)

9789740332985
97897403329859789740332985
9789740332985
 
9789740328766
97897403287669789740328766
9789740328766
 
9789740328766
97897403287669789740328766
9789740328766
 
นาย ภานุวัฒน์ สอนพงษ์-58170118-กลุ่ม01-matlab
นาย ภานุวัฒน์ สอนพงษ์-58170118-กลุ่ม01-matlabนาย ภานุวัฒน์ สอนพงษ์-58170118-กลุ่ม01-matlab
นาย ภานุวัฒน์ สอนพงษ์-58170118-กลุ่ม01-matlab
 
นายสมรัก สุขโศตร์ 58670153 กลุ่ม3302
นายสมรัก สุขโศตร์ 58670153 กลุ่ม3302นายสมรัก สุขโศตร์ 58670153 กลุ่ม3302
นายสมรัก สุขโศตร์ 58670153 กลุ่ม3302
 
บทนำ1
บทนำ1บทนำ1
บทนำ1
 
Mat lab2
Mat lab2Mat lab2
Mat lab2
 
55670150
5567015055670150
55670150
 
55670150
5567015055670150
55670150
 
ฺBasic vector algebra in 2 dimension and 3 dimension
ฺBasic vector algebra in 2 dimension and 3 dimensionฺBasic vector algebra in 2 dimension and 3 dimension
ฺBasic vector algebra in 2 dimension and 3 dimension
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
 
c# part1.pptx
c# part1.pptxc# part1.pptx
c# part1.pptx
 
บทนำ
บทนำบทนำ
บทนำ
 
ลอการิทึม
ลอการิทึมลอการิทึม
ลอการิทึม
 
Know1 3
Know1 3Know1 3
Know1 3
 
Unit9
Unit9Unit9
Unit9
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
 
Know 1 1
Know 1 1Know 1 1
Know 1 1
 
นาย ทรงพล สายทอง-58170105-กลุ่ม-01
นาย ทรงพล สายทอง-58170105-กลุ่ม-01นาย ทรงพล สายทอง-58170105-กลุ่ม-01
นาย ทรงพล สายทอง-58170105-กลุ่ม-01
 
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
 

Mehr von CUPress

9789740337737
97897403377379789740337737
9789740337737CUPress
 
9789740337560
97897403375609789740337560
9789740337560CUPress
 
9789740337478
97897403374789789740337478
9789740337478CUPress
 
9789740337270
97897403372709789740337270
9789740337270CUPress
 
9789740337102
97897403371029789740337102
9789740337102CUPress
 
9789740337096
97897403370969789740337096
9789740337096CUPress
 
9789740337072
97897403370729789740337072
9789740337072CUPress
 
9789740337027
97897403370279789740337027
9789740337027CUPress
 
9789740336914
97897403369149789740336914
9789740336914CUPress
 
9789740336907
97897403369079789740336907
9789740336907CUPress
 
9789740336686
97897403366869789740336686
9789740336686CUPress
 
9789740336457
97897403364579789740336457
9789740336457CUPress
 
9789740336440
97897403364409789740336440
9789740336440CUPress
 
9789740336389
97897403363899789740336389
9789740336389CUPress
 
9789740336280
97897403362809789740336280
9789740336280CUPress
 
9789740336365
97897403363659789740336365
9789740336365CUPress
 
9789740336303
97897403363039789740336303
9789740336303CUPress
 
9789740336242
97897403362429789740336242
9789740336242CUPress
 
9789740336235
97897403362359789740336235
9789740336235CUPress
 
9789740336099
97897403360999789740336099
9789740336099CUPress
 

Mehr von CUPress (20)

9789740337737
97897403377379789740337737
9789740337737
 
9789740337560
97897403375609789740337560
9789740337560
 
9789740337478
97897403374789789740337478
9789740337478
 
9789740337270
97897403372709789740337270
9789740337270
 
9789740337102
97897403371029789740337102
9789740337102
 
9789740337096
97897403370969789740337096
9789740337096
 
9789740337072
97897403370729789740337072
9789740337072
 
9789740337027
97897403370279789740337027
9789740337027
 
9789740336914
97897403369149789740336914
9789740336914
 
9789740336907
97897403369079789740336907
9789740336907
 
9789740336686
97897403366869789740336686
9789740336686
 
9789740336457
97897403364579789740336457
9789740336457
 
9789740336440
97897403364409789740336440
9789740336440
 
9789740336389
97897403363899789740336389
9789740336389
 
9789740336280
97897403362809789740336280
9789740336280
 
9789740336365
97897403363659789740336365
9789740336365
 
9789740336303
97897403363039789740336303
9789740336303
 
9789740336242
97897403362429789740336242
9789740336242
 
9789740336235
97897403362359789740336235
9789740336235
 
9789740336099
97897403360999789740336099
9789740336099
 

9789740329923

  • 1. บทที่ 1 ความรู้พ้นฐาน MATLAB ื 1.1 บทนํา MATLAB เป็ นโปรแกรมที่ ได้รับการออกแบบมาเพื่อใช้ในการคํานวณทางคณิ ตศาสตร์ โดยเฉพาะอย่างยิ่งกับงานทางวิศวกรรมและวิทยาศาสตร์ โครงสร้ างพื้นฐานการคํานวณของ โปรแกรม MATLAB อยู่ในรู ปของเวกเตอร์ หรื อเมทริ กซ์ ซึ่ งก็เ ป็ นที่ มาของชื่ อโปรแกรมด้ว ย กล่าวคือ MATLAB เป็ นคําย่อของคําสองคําในภาษาอังกฤษคือ MATrix LABoratory จุดเด่นของ โปรแกรม MATLAB คือการที่มีชุดคําสังจํานวนมากสําหรับใช้ในการประมวลผลข้อมูลที่บรรจุอยู่ ่ ในเมทริ กซ์ครอบคลุมทฤษฎีทางคณิ ตศาสตร์ ท้ งที่เป็ นพื้นฐานและการประยุกต์อย่างกว้างขวาง ที่ ั สําคัญเราสามารถใช้งานโปรแกรมในการแก้ปัญหาต่าง ๆ ได้อย่างรวดเร็ วและมีประสิ ทธิ ภาพสู ง มาก นอกจากนี้ MATLAB ยังได้พฒนา GUI (Graphical User Interface) ที่เป็ นระบบระเบียบทํา ั ให้ ก ารสร้ า งโปรแกรมประยุ ก ต์เ ฉพาะตามที่ ผูใ ช้ต ้อ งการสามารถทํา ได้โ ดยง่ า ย นอกจากนี้ ้ MATLAB ยังได้พฒนาโปรแกรมสําคัญอีกส่ วนหนึ่ งที่เรี ยกว่า Simulink เพื่อใช้จาลองการทํางาน ั ํ ของระบบหรื อกระบวนการที่เราสนใจ โดยผูใช้งานสามารถเชื่อมต่อองค์ประกอบย่อยแต่ละส่ วน ้ ของระบบหรื อกระบวนการเข้าด้วยกันในรู ปของบล็อกที่ง่าย สะดวกต่อการใช้งาน แทนที่จะต้อง พิ ม พ์ชุ ด คํา สั่ ง MATLAB จํา นวนมาก การทดสอบระบบต่ า ง ๆ จึ ง ทํา ได้อ ย่า งรวดเร็ ว และมี ประสิ ทธิ ภาพ ในปั จจุบนมีการใช้งาน Simulink แพร่ หลายมากขึ้นโดยเฉพาะงานด้านการควบคุม ั
  • 2. 2 การประยุกต์ใช้ MATLAB อุตสาหกรรม คุณสมบัติที่ดีเยียมเหล่านี้ทาให้ในปัจจุบนมีการนํา MATLAB มาใช้เป็ นเครื่ องมือใน ่ ํ ั ั การเรี ยนการสอนหรื อนําไปประยุกต์ใช้กบงานวิจยอย่างแพร่ หลาย ั การเรี ยนรู ้ วิธีใช้งานโปรแกรม MATLAB ในระดับพื้นฐานจัดว่าเป็ นเรื่ องที่ไม่ยากนัก และโดยทัวไปจะพบว่า นิ สิตนักศึกษาหรื อนักวิชาการสามารถใช้งาน MATLAB ขั้นพื้นฐานได้ ่ ทันทีหลังจากที่ได้ทดลองใช้งานด้วยตนเองตามตัวอย่างที่อธิ บายในบทที่ 1 นี้ ดังนั้น รู ปแบบการ อธิ บ ายในบทนี้ จึ ง เน้น การใช้ตว อย่า งเป็ นหลัก เพื่อ ให้ผูอ่านสามารถทราบถึ ง แนวทางการใช้ ั ้ ประโยชน์จากโปรแกรม MATLAB ได้อย่างรวดเร็ วและมีประสิ ทธิ ผล แนวทางการอ่านเพื่อทํา ความเข้าใจในบทนี้ จึงตรงไปตรงมา คือ ให้ผเู ้ รี ยนทดลองพิมพ์คาสั่งตามตัวอย่างไปทีละบรรทัด ํ จนครบทั้ง บทเพราะการลงมื อ พิ ม พ์ค า สั่ ง เองเป็ นปั จ จัย หลัก ที่ จ ะช่ ว ยให้ ผู ้อ่ า นสามารถทํา ํ ความคุนเคยและเข้าใจหลักการพื้นฐานของ MATLAB ได้อย่างรวดเร็ ว เนื้อหาที่จะกล่าวถึงต่อไป ้ มีการเรี ยงลําดับดังนี้ การใช้คาสั่งสําหรับการสร้างตัวแปรในรู ปของเวกเตอร์หรื อเมทริ กซ์ ฟังก์ชน ํ ั พื้นฐานสําหรั บการสร้าง เมทริ กซ์ ฟั งก์ชนการวาดกราฟ การบวกลบคูณหารอย่างง่าย และการ ั กําหนดรู ปแบบการแสดงผลตัวเลข 1.2 การสร้ างตัวแปรเวกเตอร์ และเมทริกซ์ ่ การคํานวณต่าง ๆ ในโปรแกรม MATLAB อยูบนพื้นฐานของตัวแปรที่กาหนดในรู ปของ ํ เวกเตอร์ (vector) และเมทริ กซ์ (matrix) เป็ นหลัก ดังนั้น การเรี ยนรู ้โปรแกรม MATLAB เพื่อให้ สามารถใช้งานได้อย่างมี ประสิ ทธิ ภาพ ผูใช้งานจําเป็ นต้องเข้าใจถึงหลักการและวิธีการสร้ าง ้ ตัวแปรเหล่านี้ให้ถ่องแท้ก่อน ในลําดับแรกจะแสดงวิธีสร้ างตัวแปร x ที่เป็ นเวกเตอร์ แถว (row vector) โดยใช้คาสั่ง ํ ต่อไปนี้ >> x = [1 2 3 4] และผลลัพธ์ที่ได้คือ x = 1 2 3 4
  • 3. บทที่ 1 ความรู ้พ้ืนฐาน MATLAB 3 สัง เกตว่า สมาชิ ก หรื อเอลิ เ มนต์ (element) แต่ ล ะตัว ในเวกเตอร์ x จะเขี ย นแยกจากกัน โดยใช้ ช่องว่างหรื ออาจจะใช้เครื่ องหมาย “,” ได้ดวยเช่นกัน ดังนี้ ้ >> x = [1,2,3,4] ่ ผลลัพธ์ที่ได้เหมือนกับกรณี ที่ผานมาคือ x = 1 2 3 4 หากต้องการเมทริ กซ์ทรานส์โพสของ x ก็สามารถทําได้โดยง่าย ดังนี้ >> y = x' ซึ่งจะได้ตวแปร y ขึ้นมาใหม่ที่เป็ นเมทริ กซ์ทรานส์โพสของ x และผลลัพธ์ที่ได้บนจอแสดงผลคือ ั y = 1 2 3 4 หากต้องการกําหนดเมทริ กซ์ที่มีขนาด 34 ขึ้นมาใช้งาน ให้กระทํา ดังนี้ >> A = [1 2 3 4; 5 6 7 8; 9 10 11 12] ซึ่งจะได้ผล ดังนี้ A = 1 2 3 4 5 6 7 8 9 10 11 12 สังเกตว่าเครื่ องหมาย “;” ใช้สําหรั บระบุว่าเป็ นจุดสิ้ นสุ ดของแต่ละแถว ถึงตรงนี้ เราอาจจะใช้ คําสั่ง who หรื อ whos เพื่อขอดูตวแปรทั้งหมดที่ได้มีการสร้างขึ้นในหน้าต่างที่ใช้งานอยู่หรื อที่ ั เรี ยกว่า พื้นที่ทางาน (workspace) หากใช้คาสัง who ก็จะได้ผลเป็ น ํ ํ ่ >> who Your variables are: A x y หรื อถ้าต้องการทราบขนาดหรื อหน่วยความจําของตัวแปรแต่ละตัวด้วย ให้ใช้คาสัง whos แทน ํ ่ >> whos
  • 4. 4 การประยุกต์ใช้ MATLAB Name Size Bytes Class A 3x4 96 double array x 1x4 32 double array y 4x1 32 double array Grand total is 20 elements using 160 bytes ในกรณี ที่ตองการทราบขนาดของตัวแปรตัวใดตัวหนึ่ง ให้ใช้คาสัง size(x) ยกตัวอย่างเช่น ้ ํ ่ >> size(x) ผลลัพธ์ที่ได้จะเป็ น ans = 1 4 ซึ่ งบอกเราว่าเมทริ กซ์ x มีขนาดเท่ากับ 14 คือมีเพียงแถวเดียวและมีสี่คอลัมน์ สังเกตว่าคําสั่งนี้ ไม่มีการนําค่าของฟั งก์ชน size(x) ไปใส่ ลงในตัวแปรใด ๆ ดังในกรณี ก่อนหน้า ในกรณี เช่นนี้ ั MATLAB จะบรรจุผลลัพธ์ที่ได้ลงในตัวแปรที่มีชื่อเฉพาะว่า ans เสมอ เราสามารถอ้างถึงหรื อกําหนดค่าให้แก่สมาชิกแต่ละตัวในเมทริ กซ์ได้โดยอาศัยรู ปแบบ ดังนี้ >> x = A(2,3) คําสั่งนี้ ให้นาค่าของสมาชิกในแถวที่สองและคอลัมน์ที่สามของเมทริ กซ์ A ไปบรรจุลงในตัวแปร ํ ํ x ที่ได้กาหนดขึ้นใหม่ ผลลัพธ์ที่ได้เป็ นดังนี้ คือ x = 7 แต่หากต้องการสมาชิกทั้งแถวจากเมทริ กซ์ A เช่น ต้องการสมาชิกทั้งหมดในแถวที่ 3 ไปเก็บลงใน ํ เวกเตอร์ y ที่กาหนดขึ้นมาใหม่ให้สงดังนี้ ั่ >> y = A(3,:) สังเกตว่ามีการใช้เครื่ องหมาย “:” เพื่อระบุช่วงของคอลัมน์ และผลลัพธ์ที่ได้บนจอภาพ คือ y = 9 10 11 12 เพื่อให้เห็นภาพการใช้งานเครื่ องหมาย “:” ที่ชดเจนขึ้น จะยกตัวอย่างคําสั่งต่อไปนี้ซ่ ึ งดึงสมาชิก ั ในแถวที่สองของเมทริ กซ์ A เฉพาะในคอลัมน์ที่ 1 ถึง 3 เท่านั้น >> y = A(2,1:3)
  • 5. บทที่ 1 ความรู ้พ้ืนฐาน MATLAB 5 ผลที่ได้บนจอแสดงผลคือ y = 5 6 7 จะเห็นว่าตัวเลขที่อยูก่อนหน้าและหลังเครื่ องหมาย “:” เป็ นตัวระบุช่วงของคอลัมน์ที่ตองการ ่ ้ สําหรั บตัวอย่างที่ซับซ้อนขึ้นอี กเล็กน้อยก็คือการดึ งสมาชิ กในแถวที่หนึ่ งและสองโดยที่ สนใจ เฉพาะสมาชิกในคอลัมน์ที่สองและสามเท่านั้น ซึ่งจะใช้คาสังดังนี้ ํ ่ >> y = A(1:2,2:3) y = 2 3 6 7 หากต้องการเฉพาะสมาชิกตั้งแต่คอลัมน์ที่สองไปจนถึงคอลัมน์สุดท้ายในแถวที่หนึ่งเท่านั้น ให้ใช้ คําสังดังนี้ ่ >> y = A(1,2:end) y = 2 3 4 ตัวอย่างก่ อนหน้านี้ ลวนแล้วแต่กาหนดช่ วงของแถวหรื อคอลัมน์ที่ต่อเนื่ องกันทั้งสิ้ น ในกรณี ที่ ้ ํ ต้อ งการดึ ง สมาชิ ก ในแถวหรื อ คอลัม น์ ที่ไ ม่ ติ ด กัน ออกมาหรื อ จะดึ ง ซํ้า มากกว่ าหนึ่ ง ครั้ ง เช่ น ต้องการอ้างถึงสมาชิกในคอลัมน์ที่หนึ่ง คอลัมน์ที่สี่ และคอลัมน์ที่สี่อีกครั้ง ให้ใช้คาสังดังนี้ ํ ่ >> y = A(:,[1 4 4]) y = 1 4 4 5 8 8 9 12 12 คําสังการลบแถวหรื อคอลัมน์ของเมทริ กซ์กน่าสนใจเช่นกัน และสามารถทําได้โดยใช้คาสังดังนี้ ่ ็ ํ ่ >> A(1,:) = [] คําสังนี้เป็ นการลบสมาชิกทั้งหมดในแถวที่หนึ่งของเมทริ กซ์ A ซึ่งผลลัพธ์เป็ นดังนี้ ่ A = 5 6 7 8 9 10 11 12
  • 6. 6 การประยุกต์ใช้ MATLAB และถ้าจะลบสมาชิกทั้งหมดในคอลัมน์ที่สี่ของเมทริ กซ์ A ให้กระทําดังนี้ >> A(:,4) = [] A = 5 6 7 9 10 11 ในโปรแกรม MATLAB การนําเมทริ กซ์หลายชุดมาประกอบกันให้ได้เป็ นเมทริ กซ์ที่มีขนาดใหญ่ ขึ้นก็สะดวกมาก ยกตัวอย่างเช่น >> A = [0 0; 1 1; 2 2]; >> B = [3 3; 4 4; 5 5]; >> C = [A B] C = 0 0 3 3 1 1 4 4 2 2 5 5 เป็ นคําสั่งการต่อเมทริ กซ์ A และ B ในแนวนอนและได้เป็ นเมทริ กซ์ C ที่มีขนาดใหญ่ข้ ึน สังเกตว่า เครื่ องหมาย “;” ที่ปิดท้ายคําสั่งในสองบรรทัดแรกเป็ นการบอกโปรแกรม MATLAB ว่าไม่ตอง ้ แสดงผลออกบนจอภาพ เครื่ องหมายนี้เป็ นประโยชน์มากหากเราไม่ตองการเห็นผลลัพธ์ของคําสัง ้ ่ บางบรรทัด สําหรับการต่อเมทริ กซ์ในแนวตั้งก็สามารถกระทําได้เช่นกันดังนี้ C = [A;B] C = 0 0 1 1 2 2 3 3 4 4 5 5 คําสังการสร้างเวกเตอร์อีกรู ปแบบหนึ่งที่เป็ นประโยชน์และมีการใช้งานบ่อยครั้งมาก คือ การสร้าง ่ เวกเตอร์ที่สมาชิกมีค่าเพิ่มขึ้นหรื อลดลงอย่างเป็ นระบบ เช่น ต้องการสร้างเวกเตอร์ขนาด 11,000 โดยบรรจุตวเลขจํานวนเต็มเรี ยงลําดับตั้งแต่ 1 ถึง 1,000 การสร้างตัวแปรดังกล่าวนี้ ดวยการพิมพ์ ั ้ โดยตรงด้วยมือต้องใช้เวลานานมาก ในกรณี เช่นนี้ผใช้สามารถพิมพ์คาสังสั้น ๆ ดังต่อไปนี้ได้ทนที ู้ ํ ่ ั >> D = 1:1:1000;
  • 7. บทที่ 1 ความรู ้พ้ืนฐาน MATLAB 7 คําสังในลักษณะนี้สามารถนํามาใช้งานได้อย่างกว้างขวาง เช่น ต้องการเวกเตอร์แถวที่บรรจุตวเลข ่ ั จํานวนคู่เรี ยงตั้งแต่ 10 ถึง 20 ให้ใช้คาสังดังนี้ ํ ่ >> D = 10:2:20 D = 10 12 14 16 18 20 หากต้องการเวกเตอร์ แถวที่บรรจุตวเลขเรี ยงจากมากไปน้อย เริ่ มต้นตั้งแต่ 20 ไปจนถึง -20 โดย ั ลดลงทีละ 5 ให้ใช้คาสังดังนี้ ํ ่ >> D = 20:-5:-20 D = 20 15 10 5 0 -5 -10 -15 -20 ถ้าต้องการเวกเตอร์ที่บรรจุตวเลขตั้งแต่ -1 ถึง 1 โดยเพิมขึ้นทีละ 0.5 ก็สามารถทําได้ดงนี้ ั ่ ั >> D = -1:0.5:1 D = -1.0000 -0.5000 0 0.5000 1.0000 ในกรณี ที่ตวเลขที่เพิ่มขึ้นแต่ละครั้งมีค่าเท่ากับหนึ่งเราสามารถเขียนคําสังให้ส้ นลงได้เป็ น ั ่ ั >> D = 5:8 D = 5 6 7 8 1.3 ฟังก์ ชันพืนฐานสํ าหรับการสร้ างเมทริกซ์ ้ หัวข้อที่ ผ่านมากล่าวถึ งการสร้ างตัวแปรในรู ปของเวกเตอร์ หรื อเมทริ กซ์อย่างง่ ายและ ตรงไปตรงมา อย่างไรก็ตาม ในการประยุกต์ใช้งานโดยทัวไปมักจะมี การสร้ างเมทริ กซ์ที่มีค่า ่ เฉพาะหรื อมีรูปลักษณ์ที่เป็ นมาตรฐาน เช่ น ต้องการสร้ างเมทริ กซ์ที่มีค่าเป็ นศูนย์ท้ งหมดขนาด ั mxn โดย m และ n มี ข นาดใหญ่ ม าก หากสร้ า งเมทริ ก ซ์ ที่ ว่ า นี้ ด ้ว ยวิ ธี ก ารพิ ม พ์ค่ า โดยตรงตาม รู ป แบบที่ ไ ด้อ ธิ บ ายในส่ ว นที่ แ ล้ว จะเสี ย เวลามากและอาจเกิ ด ข้อ ผิด พลาดได้ง่ า ย ดัง นั้น ใน MATLAB จึงได้เตรี ยมฟั งก์ชนพื้นฐานจํานวนหนึ่ งไว้สาหรับใช้งาน ั ํ
  • 8. 8 การประยุกต์ใช้ MATLAB ตารางที่ 1.1 ฟังก์ชนพื้นฐานสําหรับสร้างเมทริ กซ์ ั zeros เมทริ กซ์ที่มีสมาชิกเป็ น 0 ทั้งหมด ones เมทริ กซ์ที่มีสมาชิกเป็ น 1 ทั้งหมด eye เมทริ กซ์เอกลักษณ์ (identity matrix) diag เมทริ กซ์จตุรัสที่มีค่าในแนวทแยงมุมตามที่กาหนด ั ํ triu เมทริ กซ์ที่มีค่าเฉพาะในส่ วนของสามเหลี่ยมด้านบน tril เมทริ กซ์ที่มีค่าเฉพาะในส่ วนของสามเหลี่ยมด้านล่าง rand เมทริ กซ์ที่มีสมาชิกเป็ นจํานวนสุ่ ม hilb เมทริ กซ์ฮิลเบิร์ต (Hilbert matrix) magic เมทริ กซ์จตุรัสที่ มีผลรวมของค่าในแถว คอลัมน์ และแนวทแยงมุมเท่ากัน ั ทั้งหมด hadamard เมทริ กซ์ Hadamard vander เมทริ กซ์ Vandermonde toeplitz เมทริ กซ์ Toeplitz ฟังก์ชัน zero(m,n) ฟั ง ก์ ชั น zero(m,n) ให้ ก ํา เนิ ด เมทริ กซ์ ข นาด mxn ที่ มี ส มาชิ ก เป็ นศู น ย์ท้ ัง หมด ยกตัวอย่างเช่น >> zeros(2,5) ans = 0 0 0 0 0 0 0 0 0 0 ฟังก์ชัน ones(m,n) ฟั งก์ชน ones(m,n) คล้ายคลึงกับคําสั่ง zero(m,n) มาก เพียงแต่เมทริ กซ์ที่ได้จะมี ั สมาชิกเป็ นหนึ่งทั้งหมด ยกตัวอย่างเช่น >> ones(3,4) ans =
  • 9. บทที่ 1 ความรู ้พ้ืนฐาน MATLAB 9 1 1 1 1 1 1 1 1 1 1 1 1 ฟังก์ ชัน eye(n) ั ํ ฟั งก์ชน eye(n) ให้กาเนิ ดเมทริ กซ์จตุรัสที่มีสมาชิ กเป็ นศูนย์ท้ งหมดยกเว้นสมาชิ กใน ั ั แนวทแยงมุมที่มีค่าเป็ นหนึ่ง ฉะนั้น เมทริ กซ์ที่ได้คือเมทริ กซ์เอกลักษณ์นนเอง ยกตัวอย่างเช่น ั่ >> eye(3) ans = 1 0 0 0 1 0 0 0 1 ั ํ แท้จริ งแล้วฟั งก์ชน eye สามารถให้กาเนิ ดเมทริ กซ์ที่ไม่ใช่เมทริ กซ์จตุรัสได้ดวย การใช้งานเป็ น ั ้ ดังนี้ >> eye(2,4) ans = 1 0 0 0 0 1 0 0 สังเกตว่า ฟั งก์ชนสามารถมีรูปแบบการใช้ที่ต่างกันได้มากกว่าหนึ่ งรู ปแบบ โดยขึ้นอยูกบจํานวน ั ่ ั และรายละเอียดของอาร์ กิวเมนต์ที่ป้อนให้แก่ฟังก์ชน ใน MATLAB มีคาสั่ง help ที่ใช้สาหรับ ั ํ ํ อธิบายรายละเอียดรู ปแบบและการใช้งานของฟั งก์ชน เช่น เราต้องการทราบวิธีการใช้งานฟังก์ชน ั ั eye ให้พิมพ์คาสังดังนี้ ํ ่ >> help eye EYE Identity matrix. EYE(N) is the N-by-N identity matrix. EYE(M,N) or EYE([M,N]) is an M-by-N matrix with 1's on the diagonal and zeros elsewhere. EYE(SIZE(A)) is the same size as A. See also ONES, ZEROS, RAND, RANDN. จะเห็ น ว่ า ฟั ง ก์ชัน eye มี ก ารใช้ง านได้ส องลัก ษณะคื อ eye(n) และ eye(m,n) สํา หรั บ ฟังก์ชน zeros หรื อ ones ก็เช่นเดียวกันมีรูปแบบการใช้งานได้หลายลักษณะ หากลองใช้คาสั่ง ั ํ
  • 10. 10 การประยุกต์ใช้ MATLAB help เพื่ อ ดู วิ ธี ก ารใช้ฟั ง ก์ ช ัน zeros หรื อ ones จะพบว่ า ฟั ง ก์ชัน ทั้ง สองสามารถใช้ส ร้ า ง เมทริ กซ์ที่มีมากกว่าสองมิติได้ ยกตัวอย่างเช่น >> ones(3,4,2) ans(:,:,1) = 1 1 1 1 1 1 1 1 1 1 1 1 ans(:,:,2) = 1 1 1 1 1 1 1 1 1 1 1 1 ดังนั้น การอ้างถึงสมาชิกในเมทริ กซ์สามมิติจึงต้องใส่ ดชนี ถึง 3 ค่า ยกตัวอย่างเช่น เราประสงค์จะ ั เปลี่ยนค่าของสมาชิกตัวหนึ่งให้มีค่าเป็ น 5 ให้ทาดังนี้ ํ >> ans(1,1,2) = 5 ans(:,:,1) = 1 1 1 1 1 1 1 1 1 1 1 1 ans(:,:,2) = 5 1 1 1 1 1 1 1 1 1 1 1 ฟังก์ชัน diag(x) ํ ฟั งก์ชัน diag(x) ให้กาเนิ ดเมทริ กซ์จตุรัสที่มีสมาชิ กเป็ นศูนย์ท้ งหมดยกเว้นในแนว ั ั ทแยงมุมที่บรรจุสมาชิกของเวกเตอร์ x ยกตัวอย่างเช่น >> x = [1 3 5 7]; >> diag(x) ans = 1 0 0 0 0 3 0 0 0 0 5 0 0 0 0 7 อย่างไรก็ตาม ถ้า x ที่ป้อนเข้าฟังก์ชน diag(x) เป็ นเมทริ กซ์จตุรัส ผลลัพธ์ที่ได้จะเป็ นเวกเตอร์ที่ ั ั ประกอบด้วยสมาชิกในแนวทแยงมุมของเมทริ กซ์ x ยกตัวอย่างเช่น >> x = [1 2;3 4]