0Pricing
R Academy · บทเรียน

การสร้างเมทริกซ์ด้วย matrix()

สร้างเมทริกซ์โดยระบุ data, nrow, ncol และ byrow

การสร้างเมทริกซ์ด้วย matrix() เป็นบทเรียน R Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน R Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส R Academy มีบทเรียนทั้งหมด 4 บทเรียน

matrix ใน R คืออะไร

matrix ใน R เป็นโครงสร้างข้อมูลสองมิติที่องค์ประกอบทั้งหมดต้องเป็นชนิดเดียวกัน ลองนึกภาพว่าเป็นตารางที่มีแถวและคอลัมน์ matrix มีความสำคัญต่อพีชคณิตเชิงเส้น การประมวลผลภาพ และการคำนวณทางสถิติ

# A simple 2x3 matrix
m <- matrix(1:6, nrow = 2, ncol = 3)
cat('A 2x3 matrix:
')
print(m)
cat('Dimensions:', dim(m), '
')  # rows cols

matrix(data, nrow, ncol)

ฟังก์ชัน matrix() รับเวกเตอร์ข้อมูลแล้วจัดเรียงเป็นแถวและคอลัมน์ โดยค่าเริ่มต้น R จะเติมข้อมูลลงใน matrix ทีละคอลัมน์ (ลำดับแบบคอลัมน์เป็นหลัก)

# Filled column by column (default)
m_col <- matrix(1:12, nrow = 3, ncol = 4)
cat('Column-filled 3x4 matrix:
')
print(m_col)
cat('Note: 1,2,3 fill the first COLUMN, not the first row
')

byrow = TRUE สำหรับการเติมข้อมูลทีละแถว

การกำหนด byrow = TRUE จะเติมข้อมูลลงใน matrix ทีละแถว วิธีนี้มักเข้าใจง่ายกว่าเมื่อคุณคิดถึงข้อมูลในรูปแบบแถว เช่น ตารางสเปรดชีต

# Filled row by row
m_row <- matrix(1:12, nrow = 3, ncol = 4, byrow = TRUE)
cat('Row-filled 3x4 matrix:
')
print(m_row)
cat('Note: 1,2,3,4 fill the first ROW
')

# Verify byrow
m_check <- matrix(c(1,2,3,4,5,6), nrow = 2, byrow = TRUE)
print(m_check)

matrix จากเวกเตอร์ข้อมูล

คุณสามารถสร้าง matrix ที่มีความหมายได้โดยส่งเวกเตอร์ข้อมูลจริงเข้าไป R จะวนใช้เวกเตอร์ซ้ำหากเวกเตอร์สั้นกว่า nrow * ncol แต่แนวทางที่ดีคือควรระบุองค์ประกอบให้มีจำนวนพอดี

# Exam scores: 3 students, 4 subjects
scores_data <- c(88, 92, 75, 81,   # Student 1
                 79, 85, 90, 73,   # Student 2
                 95, 78, 82, 88)   # Student 3

exam_matrix <- matrix(scores_data, nrow = 3, ncol = 4, byrow = TRUE)
rownames(exam_matrix) <- c('Alice', 'Bob', 'Carol')
colnames(exam_matrix) <- c('Math', 'Science', 'English', 'History')
print(exam_matrix)

dim() — การตรวจสอบมิติ

dim(m) คืนเวกเตอร์ตัวเลขที่มีความยาว 2 ได้แก่ จำนวนแถวและจำนวนคอลัมน์ตามลำดับ นอกจากนี้ยังใช้ nrow(m) และ ncol(m) เพื่อดูแต่ละมิติแยกกันได้

m <- matrix(1:20, nrow = 4, ncol = 5)
cat('dim(m):', dim(m), '
')       # 4 5
cat('nrow(m):', nrow(m), '
')     # 4
cat('ncol(m):', ncol(m), '
')     # 5
cat('Total elements:', length(m), '
')  # 20

is.matrix() — การตรวจสอบชนิด

is.matrix(x) คืนค่า TRUE หาก x เป็น matrix วิธีนี้มีประโยชน์สำหรับตรวจสอบอินพุตของฟังก์ชัน โปรดทราบว่า matrix เป็นอาร์เรย์ด้วย (is.array() ก็คืนค่า TRUE เช่นกัน)

m <- matrix(1:4, nrow = 2)
v <- c(1, 2, 3, 4)

cat('is.matrix(m):', is.matrix(m), '
')  # TRUE
cat('is.matrix(v):', is.matrix(v), '
')  # FALSE
cat('is.array(m): ', is.array(m), '
')   # TRUE (matrix IS an array)
cat('class(m):    ', class(m), '
')

เมทริกซ์ศูนย์และเมทริกซ์เอกลักษณ์

คุณสามารถสร้าง matrix พิเศษได้โดยวนใช้ค่าเดียวซ้ำ matrix(0, n, n) จะสร้างเมทริกซ์ศูนย์ ส่วน diag(n) จะสร้างเมทริกซ์เอกลักษณ์ขนาด n x n (มีค่า 1 บนเส้นทแยงมุม และ 0 ในตำแหน่งอื่น)

# Zero matrix 3x3
zero_mat <- matrix(0, nrow = 3, ncol = 3)
cat('Zero matrix:
')
print(zero_mat)

# Identity matrix 3x3
identity_mat <- diag(3)
cat('Identity matrix:
')
print(identity_mat)

matrix จากค่าที่วนซ้ำ

เมื่อเวกเตอร์ข้อมูลสั้นกว่า nrow * ncol R จะวนใช้เวกเตอร์ซ้ำ (เริ่มซ้ำจากต้นเวกเตอร์) R จะแสดงคำเตือนหากความยาวของเวกเตอร์หารขนาดของ matrix ไม่ลงตัว

# Recycle a 2-element vector into a 4x4 matrix
alternate <- matrix(c(0, 1), nrow = 4, ncol = 4)
cat('Recycled 0,1 into 4x4:
')
print(alternate)

# Checkerboard effect: fills column by column

การระบุเพียง nrow หรือ ncol

คุณจำเป็นต้องระบุเพียง nrow หรือ ncol อย่างใดอย่างหนึ่งเท่านั้น โดย R จะคำนวณอีกค่าหนึ่งโดยอัตโนมัติตามความยาวของข้อมูล หากข้อมูลหารลงตัวไม่ได้ R จะวนใช้ข้อมูลซ้ำและแสดงคำเตือน

# Only specify nrow, R infers ncol
m1 <- matrix(1:12, nrow = 3)
cat('nrow=3 only, inferred ncol =', ncol(m1), '
')
print(m1)

# Only specify ncol, R infers nrow
m2 <- matrix(1:12, ncol = 4)
cat('ncol=4 only, inferred nrow =', nrow(m2), '
')

matrix อักขระ

matrix ไม่ได้จำกัดเฉพาะตัวเลข คุณสามารถสร้าง matrix อักขระสำหรับข้อมูลเชิงกลุ่ม กระดานเกม หรือตารางค้นหาได้ อย่างไรก็ตาม องค์ประกอบทั้งหมดก็ยังต้องเป็นชนิดเดียวกัน

# Tic-tac-toe board
board <- matrix(c('X', 'O', 'X',
                   'O', 'X', 'O',
                   'O', 'X', 'O'),
                nrow = 3, ncol = 3, byrow = TRUE)
cat('Tic-Tac-Toe board:
')
print(board)
cat('Type:', class(board), '
')

สรุปการสร้าง matrix

ต่อไปนี้คือสรุปวิธีสร้าง matrix ใน R:

  • matrix(data, nrow, ncol) — การสร้างพื้นฐาน (เติมข้อมูลทีละคอลัมน์โดยค่าเริ่มต้น)
  • matrix(data, nrow, ncol, byrow=TRUE) — เติมข้อมูลทีละแถว
  • matrix(0, n, m) — เมทริกซ์ศูนย์
  • diag(n) — เมทริกซ์เอกลักษณ์
  • dim(m), nrow(m), ncol(m) — ตรวจสอบมิติ
  • is.matrix(m) — ตรวจสอบชนิด
# Quick creation reference
cat('3x2 column-fill:
'); print(matrix(1:6, 3, 2))
cat('3x2 row-fill:
');    print(matrix(1:6, 3, 2, byrow=TRUE))
cat('2x2 zeros:
');       print(matrix(0, 2, 2))
cat('3x3 identity:
');    print(diag(3))

ตรวจสอบความเข้าใจอย่างรวดเร็ว

โดยค่าเริ่มต้น (เมื่อไม่ใช้ byrow = TRUE) ฟังก์ชัน matrix() จะเติมสมาชิกตามลำดับใด

ทบทวน: การสร้างเมทริกซ์

ยอดเยี่ยม! ประเด็นสำคัญจากบทเรียนนี้มีดังนี้:

  • matrix(data, nrow, ncol) สร้างเมทริกซ์ โดยค่าเริ่มต้นจะเติมข้อมูลทีละคอลัมน์
  • ใช้ byrow = TRUE เพื่อเติมข้อมูลทีละแถว
  • คุณจำเป็นต้องระบุเพียง nrow หรือ ncol อย่างใดอย่างหนึ่งเท่านั้น โดย R จะอนุมานอีกค่าหนึ่งให้
  • dim(m) คืนค่า c(rows, cols) ส่วน nrow() และ ncol() ใช้ดูจำนวนแต่ละรายการแยกกัน
  • is.matrix() ใช้ตรวจสอบว่าวัตถุเป็นเมทริกซ์หรือไม่
  • matrix(0, n, n) สร้างเมทริกซ์ศูนย์ ส่วน diag(n) สร้างเมทริกซ์เอกลักษณ์
# Full workflow: create, inspect, verify
m <- matrix(seq(2, 24, by = 2), nrow = 4, ncol = 3, byrow = TRUE)
cat('Even numbers matrix:
')
print(m)
cat('Rows:', nrow(m), '| Cols:', ncol(m), '| Elements:', length(m), '
')

คำถามที่พบบ่อย

บทเรียน “การสร้างเมทริกซ์ด้วย matrix()” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้างเมทริกซ์ด้วย matrix()” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส R Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส R Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างเมทริกซ์ด้วย matrix()”

สร้างเมทริกซ์โดยระบุ data, nrow, ncol และ byrow คุณปฏิบัติ R Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน R Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน R Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างเมทริกซ์ด้วย matrix()” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน R Academy นี้ได้ไหม

ได้ บทเรียน R Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การสร้างเมทริกซ์ด้วย matrix()
  2. การทำดัชนีและเลือกข้อมูลย่อยในเมทริกซ์
  3. เลขคณิตและการดำเนินการกับเมทริกซ์
  4. การทรานสโพสและปรับรูปร่างเมทริกซ์
← กลับไปที่ R Academy