MATLAB ตอนที่ 1 — โปรแกรมคำนวณทางคณิตศาสตร์ที่เจ๋งมาก
บทความนี้เป็นบทความแรก อันเนื่องมาจากผมอยากจะเก็บความรู้ ข้อมูลไว้อย่างเป็นหลักเป็นแหล่ง เพราะหลังจากวันนี้ได้มีโอกาสศึกษาการใช้ MATLAB เลยนำมาแบ่งปันกันครับ งั้นมาเริ่มต้นกันเลยครับ
สามารถอ่านได้ที่ BlogWai.com เช่นกัน
รู้จักกับ MATLAB กันก่อน
MATLAB ชื่อเต็ม ๆ ของมันก็คือ MATrix LABoratory ครับ จากชื่อของมันจะเห็นได้ว่าเกี่ยวข้องกับ matrix ในยุคแรก ๆ แต่ต่อมาได้มีการพัฒนากล่องเครื่องมือ (toolbox) ที่เกี่ยวข้องกับหัวข้ออื่นอีกมากมาย ยกตัวอย่างเช่น Computational Biology, Fuzzy Logic Designer และ Signal Processing
ก่อนอื่นเราจะต้องมีโปรแกรม MATLAB กันก่อนครับ ซึ่งเวอร์ชันที่ผมใช้จะเป็น 2014 ครับ สำหรับวิธีการดาวน์โหลดและติดตั้งโปรแกรมผมจะขอไม่พูดถึงนะครับ
เมื่อเราได้เข้ามาในโปรแกรม MATLAB เรียบร้อยแล้ว ผมจะเริ่มพาไปสู่วิธีการใช้แบบเบื้องต้นกันก่อน ส่วนสำคัญแรกที่เราจะต้องรู้จักก็คือ หน้าต่าง Command Window ครับ
การคำนวณทางคณิตศาสตร์แบบพื้นฐาน
เมื่อเราพิมพ์ 1 + 7 เข้าไปใน Command Window แล้วผลลัพธ์จะได้ดังนี้ครับ
คำตอบที่ได้ เมื่อเราไม่ได้กำหนดตัวแปรมารับค่าคำตอบจากนิพจน์ (expression) ใด ๆ โปรแกรมจะเก็บคำตอบให้เราไว้ในตัวแปร ans
(โดย default เลย) จะสังเกตเห็นได้ว่าเมื่อเราพิมพ์ 1 + 7 จะได้รับคำตอบเป็น 8 ซึ่งถูกเก็บไว้ในตัวแปร ans
โดยตัวแปรจะอยู่ในหน้าต่างที่เรียกว่า Workspace (ด้านซ้ายล่างของโปรแกรมโดย default)
เคลียร์หน้าต่าง Command Window อย่างไร
วิธีการง่าย ๆ ในการล้างข้อความทั้งหมดในหน้าต่าง Command Window (Clear Command Window) ได้ด้วยการพิมพ์ clc
เข้าไปใน Command Window
ตัวแปรที่กำหนดขึ้นเอง
ดังนั้นหากเราต้องการจะสร้างตัวแปรขึ้นมาใช้งาน เช่น เราต้องการเก็บค่าเลข 78 ไว้ในตัวแปรชื่อ a
ให้เราพิมพ์ a=78
ให้เราสังเกตในหน้าต่าง Workspace จะพบว่ามีตัวแปรชื่อ a
โผล่ขึ้นมาโดยมีค่า (ในช่อง Value) เป็น 78 ตามที่เรากำหนด
ซึ่งค่าของข้อมูลที่เราสามารถใช้ได้ใน MATLAB โดยพื้นฐานแล้วจะมี
- Number หรือตัวเลข ไม่ว่าจะเป็น จำนวนเต็ม จำนวนจริง จำนวนเชิงซ้อน
- Array หรือ matrix ที่จะเก็บข้อมูลเป็นกลุ่ม
- String เป็นข้อความ
- Boolean ค่าความจริง ซึ่งจะแทนด้วยค่า 0 กับ 1 (ไม่มีค่า min และ max)
ตัวแปรแบบ string
สำหรับตัวแปร string ที่ใช้เก็บข้อความนั้น เราจะกำหนดโดยใช้เครื่องหมาย อัญประกาศเดี่ยว ( '
) คร่อมข้อความที่เรากำหนดไว้ ยกตัวอย่างเช่น
b = 'Hello World'
ตัวแปรแบบ array หรือ matrix
ถ้าเราต้องการเก็บค่าของชุดตัวเลขไว้ใน array แบบ 1 มิติ เช่น
โดยสามารถกำหนดค่าได้โดยพิมพ์ดังนี้
A = [12 8 -4 20 0]
โดยเครื่องหมายสำคัญในที่นี้จะเป็นเครื่องหมาย [ และ ] ซึ่งเป็นตัวกำหนดขอบเขตของ array
หลังจากที่เราสร้าง array 1 มิติได้แล้ว หากเราต้องการเข้าถึงหรือแสดงค่าของสมาชิกใน A แต่ละตัว สามารถพิมพ์ได้ดังนี้
A(i)
โดย i
จะหมายถึงเลข index (ดัชนี) ที่ชี้ไปยังตำแหน่งของสมาชิกในตัวแปร A โดยเริ่มต้น index จาก 1 (ไม่ใช่ 0 เหมือนในภาษาโปรแกรมอื่น ๆ)
A(1)
จะได้ค่าเลข 12A(3)
จะได้ค่าเลข -4A(4)
จะได้ค่าเลข 0
ยิ่งไปกว่านั้น index ที่เราใช้อ้างถึงตำแหน่งของสมาชิกสามารถเป็น array ได้เช่นกัน ยกตัวอย่างเช่น
A([1 2 4])
ผลลัพธ์ที่ได้จะเป็นดังนี้
วิธีสร้าง array หรือ vector ที่มีลักษณะเป็นลำดับอย่างรวดเร็ว
เครื่องหมายสำคัญที่จะเข้ามาช่วยสร้าง vector ที่มีลักษณะการเปลี่ยนแปลงเป็นลำดับ (sequence) นั้นคือ colon (:) ดังนี้
หากเราต้องการสร้าง vector ที่มีขนาด 1×10 ที่เก็บตัวเลขจำนวนเต็มตั้งแต่ 1 ถึง 10 ไว้แทนที่เราจะพิมพ์ว่า
C = [1 2 3 4 5 6 7 8 9 10]
วิธีการที่ง่ายกว่าคือเราใช้เครื่องหมาย colon (:) เข้ามาช่วยดังนี้
C = 1:1:10 หรือ C = 1:10
อีกตัวอย่างก็คือ เราต้องการสร้างลำดับของตัวเลขจำนวนคี่ (เพิ่มขึ้นทีละ 2) โดยเริ่มต้นจากเลข 9 ไปจนถึง 23 เราก็สามารถใช้ colon (:) ได้ดังนี้
D = 9:2:23
และเรายังสามารถใช้ colon (:) ไปเป็น index ในการอ้างถึงตำแหน่งของสมาชิกในตัวแปร array ได้อีกอย่าง (เช่นเดียวกับการใช้ array เป็น index) เช่นเราต้องการสร้าง vector E ที่มีลำดับสลับหัวท้ายกับ D
E = D(8:-1:1)
การสร้างตัวแปร array หรือ matrix 2 มิติ
หลังจากที่เราได้เรียนรู้วิธีการสร้างตัวแปร array แบบ 1 มิติไปแล้วนั้น การสร้าง array 2 มิตินั้นจะมีเครื่องหมายที่เข้ามาช่วยในการสร้างเพิ่มขึ้นอีก 1 เครื่องหมาย นั่นคือ semicolon (;) เพื่อใช้กำหนดว่าหลังจาก semicolon จะกลายเป็น row (แถว) ใหม่
เช่นเราต้องการจะสร้าง matrix ที่มีหน้าตาดังนี้
สามารถทำได้โดยพิมพ์ดังนี้
A = [1 2 3; 4 5 6; 7 8 9]
สำหรับการอ้างถึงสมาชิก เราจะทำได้โดยระบุทั้ง (number) หรืิอ (row, column) ก็ได้
- A(1) = 1 = A(1, 1)
- A(2) = 4 = A(2, 1)
- A(4) = 2 = A(1, 2)
โดย A(2) จะหมายถึงการระบุโดยใช้เลขตำแหน่งโดย MATLAB จะนับจาก
- 1 — แถวที่ 1 หลักที่ 1
- 2 — แถวที่ 2 หลักที่ 1
- 3 — แถวที่ 3 หลักที่ 1
- 4 — แถวที่ 1 หลักที่ 2
- ไปเรื่อย ๆ
เมื่อเราได้ array 2 มิติแล้วเรายังสามารถใช้ colon (:) ในการอ้างอิงถึงสมาชิกใน array 2 มิติได้ด้วย
A(1:2, 1:2)
ผลลัพธ์ดังนี้
นอกจากนี้เรายังสามารถใช้ keyword คำว่า end ในการอ้างถึงตำแหน่งสิ้นสุดของ แถว/หลัก ใน array ใด ๆ ได้อีกด้วย ยกตัวอย่างเช่น
A(2:end, 2:end)
ผลลัพธ์ก็จะได้ดังนี้
สำหรับในครั้งแรกผมจะขอจบไว้เพียงเท่านี้ เดี๋ยวตอนต่อไปเราจะมาดูเกี่ยวกับการดำเนินการด้วยฟังก์ชันกับตัวแปรที่เราสร้างขึ้นกันครับ
ติดตามตอนอื่น ๆ ได้ที่นี่