Вы можете записать любой массив в двоичный файл с помощью fwrite и прочитать его в R с помощью readBin. В R это даст вектор, который вы можете придать форме с помощью array () или matrix ().
Вот очень простой пример.
a = magic(4)
con = fopen('a.bin', 'w');
fwrite(con, a * 0.01, 'float64')
fclose(con)
a * 0.01
ans =
0,1600 0,0200 0,0300 0,1300
0,0500 0,1100 0,1000 0,0800
0,0900 0,0700 0,0600 0,1200
0,0400 0,1400 0,1500 0,0100
Сейчас в R:
matrix(readBin("a.bin", "double", 16), 4)
[, 1] [, 2] [, 3] [, 4]
[1,] 0,16 0,02 0,03 0,13
[2,] 0,05 0,11 0,10 0,08
[3,] 0,09 0,07 0,06 0,12
[4,] 0,04 0,14 0,15 0,01
Вы можете заменить «a» на 4D массив и изменить код R на этот, и он должен работать так же:
## assume 4 dimensions with particular sizes
dims <- c(10, 5, 2, 3)
a <- array(readBin("a.bin", "double", prod(dims)), dims)
Наконец, обратите внимание, что это предполагает одинаковый порядок байтов в Matlab и R. См. Машинный формат в справочной системе Matlab fwrite, если ваши конечные системы отличаются.