---
title: "Matrix คืออะไร? (กันแน่) : ตอนที่ 1"
url: https://www.thepexcel.com/what-is-the-matrix-01/
type: post
date: 2021-08-08
updated: 2021-08-17
author: Sira Ekabut
tags: [matrix, MMULT]
---

# Matrix คืออะไร? (กันแน่) : ตอนที่ 1

อย่างที่ผมเคยได้อธิบายไปใน [Post เก่าๆ เกี่ยวกับการใช้ Matrix ใน Excel](https://www.thepexcel.com/play-excel-matrix-part1/) มาแล้ว ซึ่งสามารถใช้มันทำหลายๆ เรื่องเช่น แก้สมการ สรุปข้อมูล หรือค้นหาข้อมูลตามเงื่อนไขอะไรบางอย่าง แต่เอาเข้าจริงๆ ผมเองก็ไม่ได้เข้าใจความหมายที่แท้จริงของ Matrix เลยว่ามันคือการทำอะไรกับข้อมูลกันแน่ (รู้แต่ว่ามันต้องทำแบบนี้แบบนั้น นั่นคือรู้แต่เปลือก)

 

ซึ่งมันการที่เราไม่เข้าใจเรื่องอะไรซักอย่างจริงๆ จะทำให้เราไม่สามารถพลิกแพลงเรื่งนั้นได้เลย และยังจะต้องใช้ความจำเยอะเกินไปอีกด้วย ดังนั้นในบทความนี้จะเป็นเหมือนบันทึกการเรียนรู้ Matrix ของผมเอง ซึ่งก็คิดว่าไหนๆ ก็เรียนรู้แล้ว ก็เอามาแบ่งปันเพื่อนๆ ด้วยเลยละกัน

 

## เรียนไปทำไม?

 

ถ้าจะบอกว่า Matrix มีประโยชน์มากสำหรับการคำนวณที่ซับซ้อน ไม่ว่าจะเป็น AI, Computer Graphic, วิศวกรรม, Network Graph ตามที่อธิบายในคลิปนี้

    

มันก็เป็นเหตุผลที่ดู ok แต่ใช่ว่าคนทั่วไปจะต้องเข้าใจ Matrix นะ เพราะการทำงานในชีวิตจริงของคนทั่วไปมันไม่ได้ใช้เลย (แม้จะบังคับให้เด็กเรียนในสมัยมัธยมก็เถอะ)

 

ส่วนเหตุผลที่ผมอยากเรียนรู้ Matrix ในตอนนี้ ก็คือ** ถ้าเข้าใจมันดูเท่ดี เวลาไปเจอบทความที่ซับซ้อนจะได้อ่านเข้าใจ** (มันเป็นเหมือนภาษาอีกภาษานึงที่ถ้าเข้าใจก็เจ๋งดีอ่ะ)

 

แต่เหตุผลที่สำคัญที่สุด คือ** อยากเอาชนะความรู้สึกที่ฝังใจตั้งแต่ตอนเด็กๆ ที่เรียน Matrix ยังไงก็ไม่เข้าใจซักที 555**

 

## เริ่มจาก Vector ก่อน

 

ก่อนที่เราจะเรียนรู้ Matrix ให้เข้าใจแบบเห็นภาพนั้น เราจะต้องเข้าใจเรื่องของ Vector ให้ดีซะก่อนครับ

 

Vector ในที่นี้คือการบอกทิศทางของลูกศรที่เริ่มจากจุด Originไปยังจุดที่กำหนด เช่น

 
- **ถ้าเป็น 2 มิติ** แกน (x,y) อาจเป็น จาก (0,0) ไปยังจุด (3,5)
- **ถ้าเป็น 3 มิติ** แกน (x,y,z) อาจเป็น จาก (0,0,0) ไปยังจุด (3,5,2) เป็นต้น

 

ซึ่งหลักการของ 2 มิติกับ 3 มิติก็เหมือนๆ กันแหละ แต่ 3 มิติมันซับซ้อนกว่า และวาดรูปประกอบยาก ดังนั้นผมจะยกตัวอย่างแค่แบบ 2 มิตินะครับ ถ้าเข้าใจ2 มิติแล้ว 3 มิติก็ไม่ใช่เรื่องยาก

 ![1](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-002.png)
*รูปนี้คือ vector (3,5) นั่นคือ vector ที่เริ่มจากจุด 0,0 แล้วชี้ไปยัง x=3 , y=5*
 

### หลักการพื้นฐานของการคำนวณ Vector

 
- **การบวก Vector **จะเปรียบเสมือนเอาลูกศร 2 อันมาต่อกัน แล้วดูว่าสุดท้ายชี้ไปที่จุดไหน Vector ผลลัพธ์จะเริ่มจาก Origin ถึงจุดนั้นๆ
    - **vector (a,b) รวมกับ vector (c,d) = vector (a+c,b+d) นั่นเอง**

 ![2](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-004.png)
*Vector เขียว (3,5) เกิดจาก Vector น้ำเงิน (2,1) + Vector ส้ม (1,4) โดยเปรียบว่าเอา Vector มาต่อลูกศรกันไปจนจบ = Vector (2+1,1+4) นั่นเอง*
 
- **การเปลี่ยนขนาด Vector** ด้วยการคูณเลข Scalar : การคูณเลขไปทั้งพิกัด x และ y ของ vector เป็นการทำให้ Vector เปลี่ยนขนาดไป 
    - **c * vector(a,b) = vector(c*a,c*b) นั่นเอง**
    - ถ้าเลขบวก ก็จะอยู่ทิศเดิม
    - ถ้าเลขติดลบ ก็จะเป็นการกลับทิศ
    - ถ้าคูณเลขขนาด >1 ก็จะขยายขนาด
    - ถ้าคูณเลขขนาด <1 ก็จะลดขนาดได้

 ![3](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-005.png)
*Vector เขียว (6,10) คือเอา Vector น้ำเงิน (3,5) มา Scale 2 เท่า หรือ = (3*2, 5*2)*
 

### Vector ทุกอันสามารถเขียนอยู่ในรูปของ Vector 1 หน่วยพื้นฐานได้

 
- **ในแกน x **จะมี vector i ที่เป็น vector 1 หน่วยที่**ชี้ไปทางขวา** **หรือ (1,0) **เป็น vector พื้นฐาน
- **ในแกน y **จะมี vector j ที่เป็น vector 1 หน่วยที่**ชี้ขึ้นบน หรือ (0,1) **เป็น vector พื้นฐาน

 ![4](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-007.png) 

แปลว่าถ้าเราพูดถึง vector (3,5) มันก็สามารถบอกได้ว่า

 
- มันคือ 3 เท่าของ vector พื้นฐาน i รวมกับ 5 เท่าของ vector พื้นฐาน j ต่อลูกศรกัน
- หรือ 3i+5j นั่นเอง

 ![5](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-006.png) 

## Matrix คือ รูปแบบหนึ่งของ Linear Transformation

 

จริงๆ แล้วเราสามารถมองได้ว่า Matrix คือการเปลี่ยนแปลงแกนอ้างอิงของ Vector 1 หน่วยพื้นฐาน **จากการที่ i ชี้ไปที่ (1,0) และ j ชี้ไป (0,1) ให้ชี้ไปที่อื่นแทน** (โดยที่ถ้าแกนใหม่มีจุด Origin ที่เดิม และ **grid ของแกนใหม่ยังคงเป็นเส้นตรง**)

 

ซึ่ง **vector ผลลัพธ์จะถูกแปลงหน้าตาไปตามแกนอ้างอิงใหม่**ทันที นั่นคือ มีการ scale ด้วย factor เดิม แต่ใช้แกนใหม่ เช่น

 

**ตัวอย่างที่ 1** : ถ้าเดิมทีเคยมี vector (3,5) อยู่ แล้วเราบอกให้

 
- เปลี่ยน vector i จาก **(1,0) ให้กลายเป็น **(2,0) แทน ขยายขนาดเป็น 2 เท่า****
- vector j คงเดิมที่ **(0,1)**

 

แบบนี้ vector ผลลัพธ์ก็จะกลายเป็น Concept นี้

 ![6](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-017-1024x283.png) 
- 3 เท่าของ i ตัวใหม่ + 5 เท่าของ j ใหม่
- 3****(2,0) + 5(0,1)****
- (6,0) + (0,5) ต่อลูกศรกัน หรือ (6+0,0+5) นั่นเอง
- ลูกศรที่ชี้ไปพิกัด 6,5 หรือ ****ยืดยาวไปในแกน x 2 เท่าจากเดิม (ส่วนแกน y สูงเท่าเดิม)****

 ![7](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-008x.png) 

**ตัวอย่างที่ 2** : ถ้าเดิมทีเคยมี vector (3,5) อยู่ แล้วเราบอกให้

 
- เปลี่ยน vector i จาก **(1,0) ให้กลายเป็น **(0,1) แทน (หมุนทวนเข็ม 90 องศา)****
- เปลี่ยน vector j จาก **(0,1) ให้กลายเป็น **(-1,0) แทน (หมุนทวนเข็ม 90 องศา)****

 

แบบนี้ vector ผลลัพธ์ก็จะกลายเป็นแบบนี้

 ![8](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-018-1024x326.png) 
- 3 เท่าของ i ตัวใหม่ + 5 เท่าของ j ใหม่
- 3****(0,1) + 5(-1,0)****
- (0,3) + (-5,0) ต่อลูกศรกัน หรือ (0-5,3+0) นั่นเอง
- ลูกศรที่ชี้ไปพิกัด -5,3 หรือ ****หมุนทวนเข็ม 90 องศา****ด้วยนั่นเอง

 ![9](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-009x.png) 

ซึ่งจริงๆ แล้วการบอกให้ vector พื้นฐานเปลี่ยนไป ก็คือการเอา Matrix มาคูณนั่นเอง

 
- โดยฝั่งซ้ายของ Matrix คือทิศทางใหม่ของ vector i
- โดยฝั่งขวาของ Matrix คือทิศทางใหม่ของ vector j

 ![10](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-011.png) 

เช่น การเปลี่ยน vector i จาก **(1,0) ให้กลายเป็น **(2,0****) ส่วน vector j คงเดิมที่ **(0,1)** สามารถแทนด้วย Matrix นี้

 ![11](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-010.png) 

**ดังนั้นในตัวอย่างแรก** เราสามารถเอา Matrix ดังกล่าว มาคูณกับ Vector เดิมคือ 3,5 จะได้ผลลัพธ์เป็น 6,5 ดังนี้ได้เลย มีความหมายเหมือนกัน แต่ทำใน Excel ง่ายมาก เพราะใช้ MMULT ได้เลย

 ![Matrix](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-012.png) 

**ในตัวอย่างที่สอง** เราสามารถเอา Matrix มาคูณกับ Vector เดิมคือ 3,5 จะได้ผลลัพธ์เป็น -5,3 ดังนี้

 ![12](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-013.png) 

ถ้าลองใส่เลขให้เห้นชัดๆ ว่าเวลาเอา Matrix มาคูณ Vector เป็นยังไง ก็จะเป็นแบบนี้

 ![13](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-014.png) 
- 17 มาจาก 1*5 + 2*6 (เพราะ 1 ถูกขยายไป 5 เท่าในทิศแกน x และ 2 ถูกขยายไป 6 เท่าในทิศแกน x)
- 39 มาจาก 3*5 + 4*6 (เพราะ 3 ถูกขยายไป 5 เท่าในทิศแกน y และ 4 ถูกขยายไป 6 เท่าในทิศแกน y)

 

หรือจะมองแบบเดิมๆ ก็คือเป็นแบบนี้ ก็เข้าใจง่ายดี

 ![14](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-019-1024x326.png) 

ถ้าเรารู้แล้วว่า Matrix คูณกับ Vector คือการ Transform Vector นั้นๆ แล้ว Matrix คูณ Matrix มันคืออะไรล่ะ??

 

## Matrix คูณกับ Matrix คืออะไร?

 

หากเราลองคิดดูดีๆ ว่าเวลาเราเอา Matrix มาคูณกับ Vector มันคือการ Transform 1 ที แล้วถ้าเราจะ Transform 2 ทีล่ะ??   
**มันก็คือการเอา Matrix มาคูณด้วย 2 ทีรวดยังไงล่ะ!! **

 

ซึ่งก็เปรียบ**เสมือนการใช้ Matrix 1 ตัว ที่เก็บ Effect ของการ Transform ทั้ง 2 รอบเข้าไป**แล้วนั่นเอง (การ Transform อ่านจากขวาไปซ้าย นั่นคือ Transform แบบเหลืองก่อน แล้วค่อย Transform แบบน้ำเงิน)

 ![15](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-022-1024x614.png) 

ซึ่งเราจะหา Effect สุทธิของการ Transform ได้ (หรือผลคูณ Matrix ได้) ก็ต้องเข้าใจก่อนว่า ตกลงแล้ว i และ j สุดท้ายถูกเปลี่ยนให้กลายเป็นอะไรไปแล้ว??

 
- **i ใหม่ไปไหน** ตอนแรก i (1,0) ถูก Matrix เหลืองแก้ทิศทางให้เป็น (a,c) ก่อน 
    - ให้เรามองว่าเกิด vector (a,c) ขึ้นมา เพราะ vector ผลลัพธ์จากการ Transform ครั้งแรก คือ (a,c)*1 + (b,d)*0 = (a,c) นั่นเอง
    - จากนั้น (a,c) ก็ถูก Matrix น้ำเงิน Transform Vector นั้นอีกรอบ ทำให้เกิดผลลัพธ์เป็น **vector (e,g)*a + (f,h)*c **
    - **= (a*e+c*f , a*g+c*h)**
- **j ใหม่ไปไหน** ตอนแรก j (0,1) ถูก Matrix เหลืองแก้ทิศทางให้เป็น (b,d) ก่อน 
    - ให้เรามองว่าเกิด vector (b,d) ขึ้นมา เพราะ vector ผลลัพธ์จากการ Transform ครั้งแรก คือ (a,c)*0 + (b,d)*1 = (b,d) นั่นเอง
    - จากนั้น (b,d) ก็ถูก Matrix น้ำเงิน Transform Vector นั้นอีกรอบ ทำให้เกิดผลลัพธ์เป็น **vector (e,g)*b + (f,h)*d **
    - = **(b*e+d*f , b*g+d*h)**
- พอเอาผลลัพธ์กลับมาเขียนในรูป Matrix (ฝั่งซ้ายคือ i ใหม่ ฝั่งขวาคือ j ใหม่) ก็จะได้ว่า แต่ละช่องเป็นดังนี้ ซึ่งเหมือนกับสูตรที่เคยท่องกันสมัยเด็กๆ นั่นแหละ
- ดังนั้น**การที่เราเอา Matrix คูณกัน ก็คือการสั่งให้ Transform vector หลายๆ รอบ**นั่นเอง

 ![16](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-023.png) 

ซึ่งแน่นอนว่าเราสามารถ**ใช้ MMULT ในการคูณ Matrix ใน Excel ได้เลย** ง่ายกว่ามานั่งคูณเองมากๆ

 ![17](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-024-1024x397.png) ![18](https://www.thepexcel.com/wp-content/uploads/2021/08/matrix-025-1024x397.png) 

ซึ่งสังเกตว่า การ Transform หากสลับลำดับกัน Vector ผลลัพธ์ก็จะไม่เหมือนกันนะครับ (-5,6) กับ (-10,3) นั่นก็แปลว่า **Matrix ไม่มีคุณสมบัติการสลับที่การคูณนั่นเอง**

 

## ตอนต่อไป

 

สำหรับตอนแรก ก็ยาวแล้วเดี่ยวขอจบเพียงเท่านี้ก่อนนะครับ แล้ว[ในตอนหน้าเราจะมาเรียนรู้กันอีกว่า INVERSE คืออะไร DET คืออะไร](https://www.thepexcel.com/what-is-the-matrix-02/) ซึ่งสามารถทำให้เห็นภาพได้หมดเลย

 

## แหล่งเรียนรู้เพิ่มเติม

 

ซึ่งความรู้ที่ได้ในบทความนี้ หลักๆ เกิดจากการดูคลิปวีดีโอ series นี้ครับ ถ้าใครอยากเรียนรู้แบบเต็มๆ ล่วงหน้าไปก่อนก็ลองดูได้เลย

---

_Source: [https://www.thepexcel.com/what-is-the-matrix-01/](https://www.thepexcel.com/what-is-the-matrix-01/)_
