主要介紹一下利用matrix函數和rep生成矩陣
在R語言中可以使用matrix()函數來創建矩陣,其語法格式如下:
- matrix(data=NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
參數含義如下:
- data:矩陣的元素,默認為NA,即未給出元素值的話,各項為NA
- nrow:矩陣的行數,默認為1;
- ncol:矩陣的列數,默認為1;
- byrow:元素是否按行填充,默認按列;
- dimnames:以字符型向量表示的行名及列名。
rep函數是R語言中重復操作的函數
- rep(x,times,each,length.out)
- x:代表的是你要進行復制的對象,可以是一個向量或者是一個因子。
- times:代表的是復制的次數,只能為正數。負數以及NA值都會為錯誤值。復制是指的是對整個向量進行復制。
- each:代表的是對向量中的每個元素進行復制的次數。
- length.out:代表的是最終輸出向量的長度。
下面我們利用這兩個函數生成特定的矩陣
1
2
3
4
5
6
7
8
9
10
11
12
|
> matrix(rep( 1 : 4 ,times = 2 ),nrow = 4 , ncol = 2 ,byrow = T) [, 1 ] [, 2 ] [ 1 ,] 1 2 [ 2 ,] 3 4 [ 3 ,] 1 2 [ 4 ,] 3 4 > matrix(rep( 1 : 4 ,times = 2 ),nrow = 4 , ncol = 2 ,byrow = F) [, 1 ] [, 2 ] [ 1 ,] 1 1 [ 2 ,] 2 2 [ 3 ,] 3 3 [ 4 ,] 4 4 |
從上面兩個執行結果,可以看出,rep生成的是一行向量,matrix把一行的向量按照byrow蠶食指定的填充方向填充
下面我們生成一個4x4的矩陣,要求矩陣的每個位置上的元素等于1/(i+j-1),體會rep兩個參數的含義
1
2
3
4
5
6
7
8
9
|
> I < - matrix(rep( 1 : 4 ,times = 4 ),nrow = 4 , byrow = F) > J < - matrix(rep( 1 : 4 ,each = 4 ),nrow = 4 , byrow = T) #實際上J是I的轉置 > A < - 1 / (I + J - 1 ) > A [, 1 ] [, 2 ] [, 3 ] [, 4 ] [ 1 ,] 1.0000000 1.0000000 1.0000000 1.0000000 [ 2 ,] 0.3333333 0.3333333 0.3333333 0.3333333 [ 3 ,] 0.2000000 0.2000000 0.2000000 0.2000000 [ 4 ,] 0.1428571 0.1428571 0.1428571 0.1428571 |
到此這篇關于R語言matrix生成矩陣的方法的文章就介紹到這了,更多相關R語言matrix生成矩陣內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/qq_42451512/article/details/84337420