R - Ma trận
Ma trận là đối tượng R trong đó các phần tử được sắp xếp theo bố cục hình chữ nhật hai chiều. Chúng chứa các nguyên tố cùng loại nguyên tử. Mặc dù chúng ta có thể tạo một ma trận chỉ chứa các ký tự hoặc chỉ các giá trị logic, chúng không được sử dụng nhiều. Chúng tôi sử dụng ma trận chứa các phần tử số để dùng trong tính toán toán học.
Ma trận được tạo bằng cách sử dụng matrix() chức năng.
Cú pháp
Cú pháp cơ bản để tạo ma trận trong R là:
matrix(data, nrow, ncol, byrow, dimnames)
Sau đây là mô tả về các tham số được sử dụng:
data là vectơ đầu vào trở thành phần tử dữ liệu của ma trận.
nrow là số hàng sẽ được tạo.
ncol là số cột sẽ được tạo.
byrowlà một manh mối hợp lý. Nếu TRUE thì các phần tử vectơ đầu vào được sắp xếp theo hàng.
dimname là tên được gán cho các hàng và cột.
Thí dụ
Tạo một ma trận lấy một vectơ số làm đầu vào.
# Elements are arranged sequentially by row.
M <- matrix(c(3:14), nrow = 4, byrow = TRUE)
print(M)
# Elements are arranged sequentially by column.
N <- matrix(c(3:14), nrow = 4, byrow = FALSE)
print(N)
# Define the column and row names.
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")
P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
print(P)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
[,1] [,2] [,3]
[1,] 3 4 5
[2,] 6 7 8
[3,] 9 10 11
[4,] 12 13 14
[,1] [,2] [,3]
[1,] 3 7 11
[2,] 4 8 12
[3,] 5 9 13
[4,] 6 10 14
col1 col2 col3
row1 3 4 5
row2 6 7 8
row3 9 10 11
row4 12 13 14
Truy cập các phần tử của ma trận
Các phần tử của ma trận có thể được truy cập bằng cách sử dụng chỉ số cột và hàng của phần tử. Ta xét ma trận P ở trên để tìm các phần tử cụ thể bên dưới.
# Define the column and row names.
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")
# Create the matrix.
P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
# Access the element at 3rd column and 1st row.
print(P[1,3])
# Access the element at 2nd column and 4th row.
print(P[4,2])
# Access only the 2nd row.
print(P[2,])
# Access only the 3rd column.
print(P[,3])
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
[1] 5
[1] 13
col1 col2 col3
6 7 8
row1 row2 row3 row4
5 8 11 14
Tính toán ma trận
Các phép toán khác nhau được thực hiện trên ma trận bằng cách sử dụng các toán tử R. Kết quả của phép toán cũng là một ma trận.
Kích thước (số hàng và cột) phải giống nhau cho các ma trận tham gia vào hoạt động.
Phép cộng và phép trừ ma trận
# Create two 2x3 matrices.
matrix1 <- matrix(c(3, 9, -1, 4, 2, 6), nrow = 2)
print(matrix1)
matrix2 <- matrix(c(5, 2, 0, 9, 3, 4), nrow = 2)
print(matrix2)
# Add the matrices.
result <- matrix1 + matrix2
cat("Result of addition","\n")
print(result)
# Subtract the matrices
result <- matrix1 - matrix2
cat("Result of subtraction","\n")
print(result)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
[,1] [,2] [,3]
[1,] 3 -1 2
[2,] 9 4 6
[,1] [,2] [,3]
[1,] 5 0 3
[2,] 2 9 4
Result of addition
[,1] [,2] [,3]
[1,] 8 -1 5
[2,] 11 13 10
Result of subtraction
[,1] [,2] [,3]
[1,] -2 -1 -1
[2,] 7 -5 2
Phép nhân & phép chia ma trận
# Create two 2x3 matrices.
matrix1 <- matrix(c(3, 9, -1, 4, 2, 6), nrow = 2)
print(matrix1)
matrix2 <- matrix(c(5, 2, 0, 9, 3, 4), nrow = 2)
print(matrix2)
# Multiply the matrices.
result <- matrix1 * matrix2
cat("Result of multiplication","\n")
print(result)
# Divide the matrices
result <- matrix1 / matrix2
cat("Result of division","\n")
print(result)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
[,1] [,2] [,3]
[1,] 3 -1 2
[2,] 9 4 6
[,1] [,2] [,3]
[1,] 5 0 3
[2,] 2 9 4
Result of multiplication
[,1] [,2] [,3]
[1,] 15 0 6
[2,] 18 36 24
Result of division
[,1] [,2] [,3]
[1,] 0.6 -Inf 0.6666667
[2,] 4.5 0.4444444 1.5000000