您好,登錄后才能下訂單哦!
今天小編給大家分享一下R語言如何創建矩陣的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
矩陣是其中元素以二維矩形布局布置的R對象, 它們包含相同原子類型的元素。這種數據結構很類似于其它語言中的二維數組,但 R 提供了語言級的矩陣運算支持。
矩陣里的元素可以是數字、符號或數學式。
一個 M x N 的矩陣是一個由 M(row) 行 和 N 列(column)元素排列成的矩形陣列。
R 語言的矩陣可以使用 matrix() 函數來創建,語法格式如下:
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL)
參數說明:
data 向量,矩陣的數據
nrow 行數
ncol 列數
byrow 邏輯值,為 FALSE 按列排列,為 TRUE 按行排列
dimname 設置行和列的名稱
創建一個數字矩陣“
# byrow 為 TRUE 元素按行排列 M <- matrix(c(3:14), nrow = 4, byrow = TRUE) print(M) # Ebyrow 為 FALSE 元素按列排列 N <- matrix(c(3:14), nrow = 4, byrow = FALSE) print(N) # 定義行和列的名稱 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) 執行以上代碼輸出結果為: [,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
R 語言矩陣提供了 t() 函數,可以實現矩陣的行列互換。
例如有個 m 行 n 列的矩陣,使用 t() 函數就能轉換為 n 行 m 列的矩陣。
# 創建一個 2 行 3 列的矩陣 M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE) print(M) [,1] [,2] [,3] [1,] 2 6 5 [2,] 1 10 4 # 轉換為 3 行 2 列的矩陣 print(t(M)) 執行以上代碼輸出結果為: [,1] [,2] [,3] [1,] 2 6 5 [2,] 1 10 4 "-----轉置后-----" [,1] [,2] [1,] 2 1 [2,] 6 10 [3,] 5 4
矩陣有一個dim屬性,內容是兩個元素的向量, 兩個元素分別為矩陣的行數和列數。dim屬性可以用dim()函數訪問。如
# 創建一個 2 行 3 列的矩陣 M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE) print(M) [,1] [,2] [,3] [1,] 2 6 5 [2,] 1 10 4 dim(A) [1] 2 3
如果想獲取矩陣元素,可以通過使用元素的列索引和行索引,類似坐標形式。
# 定義行和列的名稱 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) # 獲取第一行第三列的元素 print(P[1,3]) # 獲取第四行第二列的元素 print(P[4,2]) # 獲取第二行 print(P[2,]) # 獲取第三列 print(P[,3]) 執行以上代碼輸出結果為: col1 col2 col3 row1 3 4 5 row2 6 7 8 row3 9 10 11 row4 12 13 14 [1] 5 [1] 13 col1 col2 col3 6 7 8 row1 row2 row3 row4 5 8 11 14
大小相同(行數列數都相同)的矩陣之間可以相互加減,具體是對每個位置上的元素做加減法。矩陣的乘法則較為復雜。兩個矩陣可以相乘,當且僅當第一個矩陣的列數等于第二個矩陣的行數。
# 創建 2 行 3 列的矩陣 matrix1 <- matrix(c(7, 9, -1, 4, 2, 3), nrow = 2) print(matrix1) matrix2 <- matrix(c(6, 1, 0, 9, 3, 2), nrow = 2) print(matrix2) # 兩個矩陣相加 result <- matrix1 + matrix2 cat("相加結果:","\n") print(result) # 兩個矩陣相減 result <- matrix1 - matrix2 cat("相減結果:","\n") print(result) 執行以上代碼輸出結果為: [,1] [,2] [,3] [1,] 7 -1 2 [2,] 9 4 3 [,1] [,2] [,3] [1,] 6 0 3 [2,] 1 9 2 相加結果: [,1] [,2] [,3] [1,] 13 -1 5 [2,] 10 13 5 相減結果: [,1] [,2] [,3] [1,] 1 -1 -1 [2,] 8 -5 1
# 創建 2 行 3 列的矩陣 matrix1 <- matrix(c(7, 9, -1, 4, 2, 3), nrow = 2) print(matrix1) matrix2 <- matrix(c(6, 1, 0, 9, 3, 2), nrow = 2) print(matrix2) # 兩個矩陣相乘 result <- matrix1 * matrix2 cat("相乘結果:","\n") print(result) # 兩個矩陣相除 result <- matrix1 / matrix2 cat("相除結果:","\n") print(result) 執行以上代碼輸出結果為: [,1] [,2] [,3] [1,] 7 -1 2 [2,] 9 4 3 [,1] [,2] [,3] [1,] 6 0 3 [2,] 1 9 2 相乘結果: [,1] [,2] [,3] [1,] 42 0 6 [2,] 9 36 6 相除結果: [,1] [,2] [,3] [1,] 1.166667 -Inf 0.6666667 [2,] 9.000000 0.4444444 1.5000000
以上就是“R語言如何創建矩陣”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。