Как преобразовать шестнадцатеричное в двоичное в матрице в r?

У меня есть матрица с шестнадцатеричным числом, например:

       [,1] [,2] [,3]
  [1,] "FA" "F8" "D0"
  [2,] "CE" "17" "6A"
  [3,] "0E" "D6" "22"

Если я попытаюсь преобразовать в двоичный файл, с помощью hex2bin(matrix) (library BMS) дайте мне:

  [1] 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0
 [62] 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0
[123] 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0
[184] 1 0 0 0 1

Но нужна матрица.


person Márcio Mocellin    schedule 06.08.2018    source источник
comment
Какие размеры вам нужны для этой матрицы? Каков именно желаемый результат?   -  person MrFlick    schedule 06.08.2018
comment
Та же размерность первой матрицы.   -  person Márcio Mocellin    schedule 07.08.2018


Ответы (1)


Может вот так? Я конвертирую в десятичное целое, используя встроенный strtoi, а затем беру подсказки из Преобразование десятичного числа в двоичное для перехода к двоичному.

m = matrix(c("FA", "F8", "D0",
"CE", "17", "6A",
"0E", "D6", "22"), 3)

m[] = R.utils::intToBin(strtoi(m, base = 16L))
m
#      [,1]       [,2]       [,3]      
# [1,] "11111010" "11001110" "00001110"
# [2,] "11111000" "00010111" "11010110"
# [3,] "11010000" "01101010" "00100010"
person Gregor Thomas    schedule 06.08.2018