2016-07-26 4 views
0

행/열의 숫자 합계가 1이되도록 임의로 생성 된 숫자로 행렬을 초기화하고 싶습니다. 동시에 1 일 필요는 없습니다. 즉, 행 합계가 1이거나 열 합이 같은 시도 할 수 = 1 행에 대한 합계 1행렬 초기화하기

+1

을 - myMat/rowSums (myMat)를' – lmo

+0

수행해야 @Imo가 제공하는'rowSums' 솔루션은 행렬 연산 때문에'colSums'에서도 작동하지 않습니다. – dayne

답변

1

입니다 : 다음`myMat <사용 (나는 그것이 myMat 이름) 행렬을 만들기

num_rows <- 5 
num_cols <- 5 

random_uniform_matrix <- matrix(runif(num_rows * num_cols), nrow = num_rows, ncol = num_cols) 

random_uniform_matrix_normalised <- random_uniform_matrix/rowSums(random_uniform_matrix) 

random_uniform_matrix_normalised 
# [,1]  [,2]  [,3]  [,4]  [,5] 
# [1,] 0.23587728 0.09577532 0.28102271 0.03763127 0.34969342 
# [2,] 0.07252286 0.42979916 0.19738456 0.19545165 0.10484177 
# [3,] 0.12868304 0.30537875 0.08245634 0.26911364 0.21436823 
# [4,] 0.31938540 0.37610285 0.18834984 0.10297283 0.01318908 
# [5,] 0.10775810 0.09167090 0.54077248 0.16717661 0.09262190 
+0

Thankss. 이거 야. 또한 colSum에도 동일한 접근법을 사용할 수 있습니다. –