1
我怎樣才能順序M對12由數字 的米矩陣(例如每單元一個比特):轉換二進制的串入數據矩陣中的R
library(R.utils)
m<-5
k<-12
W<-sample(1:(2**m),k)
M<-matrix(intToBin(V),k,1)
我怎樣才能順序M對12由數字 的米矩陣(例如每單元一個比特):轉換二進制的串入數據矩陣中的R
library(R.utils)
m<-5
k<-12
W<-sample(1:(2**m),k)
M<-matrix(intToBin(V),k,1)
intToBin
正在恢復的字符,所以使用strsplit
投入矩陣之前將其拆分成單獨的位(比特)。
m <- 5
k <- 12
W <- sample(1:(2**m), k)
M <- matrix(as.numeric(unlist(strsplit(intToBin(W), ""))), nrow= k, byrow = TRUE)
> M
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 0 0 0 0 0
[2,] 0 1 1 0 0 0
[3,] 0 0 0 1 1 0
[4,] 0 1 0 0 1 1
[5,] 0 1 0 1 1 0
[6,] 0 1 1 1 0 0
[7,] 0 0 0 0 0 0
[8,] 0 1 1 1 1 0
[9,] 1 1 0 1 0 1
[10,] 1 0 0 1 1 1
[11,] 0 0 1 1 1 1
[12,] 0 0 1 1 0 1
intToBin
將返回的字符串二進制表示。
您可以拆分該字符串,轉換爲整數,然後合併行。
M<-do.call(rbind, lapply(strsplit(intToBin(W),''), as.integer))
哎,你應該增加一個選項byrow = TRUE到矩陣(),也不會像廣告:) – user189035
工作@ user189035良好的漁獲! – Gregor