MATLAB ตอนที่ 1 — โปรแกรมคำนวณทางคณิตศาสตร์ที่เจ๋งมาก

Watchanan Chantapakul
4 min readJun 4, 2016

--

บทความนี้เป็นบทความแรก อันเนื่องมาจากผมอยากจะเก็บความรู้ ข้อมูลไว้อย่างเป็นหลักเป็นแหล่ง เพราะหลังจากวันนี้ได้มีโอกาสศึกษาการใช้ 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) จะได้ค่าเลข 12
  • A(3) จะได้ค่าเลข -4
  • A(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)

ผลลัพธ์ก็จะได้ดังนี้

สำหรับในครั้งแรกผมจะขอจบไว้เพียงเท่านี้ เดี๋ยวตอนต่อไปเราจะมาดูเกี่ยวกับการดำเนินการด้วยฟังก์ชันกับตัวแปรที่เราสร้างขึ้นกันครับ

--

--

Watchanan Chantapakul
Watchanan Chantapakul

Written by Watchanan Chantapakul

วัชนันท์ จันทาภากุล

Responses (3)