2010-11-30 6 views
3

私はMatlabに4次元の行列を持っています。私はこの行列をエクスポートしてRで使ってみたい(私はそれをプロットしたい)。私の問題は、Rで使用できる行列をエクスポートする方法がわからず、Rでデータをインポートする方法もわかりません。基本的には、私がエクスポートしようとしているのは、マトリックスをMatlabでdlmwriteを使用し、read.table()を使用してRでインポートします。残念ながら、これは動作していません。RでMatlabデータを使用するには?

+9

あなたは 'R.matlab'パッケージを調べましたか? http://cran.r-project.org/web/packages/R.matlab/index.html – mropa

+1

Matlabからどのようなフォーマットで配列をエクスポートできますか?あなたがその種のファイルの例を含めることができれば、私はRコミュニティのSOの統合された努力がRアレイにそれを読む方法を見つけることができると確信しています。 –

+0

http://cran.r-project.org/doc/manuals/R-data.pdfはRにデータをインポートする方法を教えてください。 –

答えて

3

fwriteで任意の配列をバイナリに書き出し、readBinでRに読み込むことができます。 Rでは、array()またはmatrix()を使用して形状にプッシュできるベクトルを与えます。

ここは非常に簡単な例です。

a = magic(4) 

con = fopen('a.bin', 'w'); 
fwrite(con, a * 0.01, 'float64') 
fclose(con) 

a * 0.01 

ANS = Rで今

0.1600

0.0500 0.1100 0.1000 0.0800

0.0900 0.0700 0.0600 0.1200

0.0400 0.1400 0.1500 0.0100

0.0200 0.0300 0.1300

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

あなたが "" 4Dアレイとを交換し、これにRのコードを変更し、それだけで同様に動作するはずでした。

## assume 4 dimensions with particular sizes 
dims <- c(10, 5, 2, 3) 
a <- array(readBin("a.bin", "double", prod(dims)), dims) 

は最後に、あなたのエンドシステムが異なる場合、これはMatlabのfwriteのヘルプにMATLABおよびR.参照machineformatで同じバイト順序を前提としています。

+0

私はこれをたくさん使っていましたが、私は掘り下げようとします実際のコードと詳細を説明します。 – mdsumner

+9

しかし、R.matlabパッケージは.matファイルを読み込むのに非常に適しており、これよりもはるかに多様な出力を簡単に処理できます。 – mdsumner

関連する問題