Как использовать данные Matlab в R? - PullRequest
3 голосов
/ 30 ноября 2010

Ну, у меня есть матрица в Matlab, с 4 размерами.Я хотел бы экспортировать эту матрицу, чтобы использовать ее в R (я хочу построить с ней).Проблема для меня в том, что я не знаю, как экспортировать матрицу, которая может быть использована R, а также я не знаю, как импортировать данные в R. В основном я пытался экспортировать свою матрицу.матрица в Matlab, используя dlmwrite, и импортируя ее в R, используя read.table().К сожалению, это не работает.

1 Ответ

3 голосов
/ 01 декабря 2010

Вы можете записать любой массив в двоичный файл с помощью 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, если ваши конечные системы отличаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...