1

Matlab 内から R スクリプトを実行しようとしていますが、このポスターと同じエラーが発生します: Calling R from Matlab

私のシステムが LinuxMint (リリース 14 Nadia、カーネル 3.5.0-17-generic) を実行していることを除いて、状況は同じであり、その投稿の解決策は私にとってはうまくいきません。誰かがさらに提案をすることができますか? 私は困惑しています。

上記のスレッドのポスターのように、私の呼び出しはシェルから機能しますが、matlab 内からは機能しません。

r_script.R には以下が含まれます。

foo <- rnorm( 100 )
cat( sd( foo ), '\n' )
cat( mean( foo ), '\n' )

Matlab内で表示されるエラーメッセージ:

>> system( 'Rscript /tmp/r_script.R' )
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/usr/lib/R/library/stats/libs/stats.so':
  /usr/local/MATLAB/R2013a/sys/os/glnxa64/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by /usr/lib/liblapack.so.3)
During startup - Warning message:
package ‘stats’ in options("defaultPackages") was not found 
Error: could not find function "rnorm"
Execution halted

ans =

     1

>> !unset DYLD_LIBRARY_PATH; 
>> system( 'Rscript /tmp/r_script.R' )
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/usr/lib/R/library/stats/libs/stats.so':
  /usr/local/MATLAB/R2013a/sys/os/glnxa64/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by /usr/lib/liblapack.so.3)
During startup - Warning message:
package ‘stats’ in options("defaultPackages") was not found 
Error: could not find function "rnorm"
Execution halted

ans =

     1
4

2 に答える 2

1

これはおそらく、MATLAB と R で使用されるライブラリ間のバージョンの不一致が原因ですLD_PRELOAD。. MATLAB の内部と外部を使用lddして、問題の原因を突き止めます...

MATLAB では:

>> !ldd Rscript

シェル内:

$ ldd Rscript

ところで、既存のソリューションに相当する Linux は次のようになります。

>> !unset LD_LIBRARY_PATH
>> system('...')

最初にそれを試してみてください..

(私はWindowsマシンを使用しているため、どちらのソリューションもテストされていないことに注意してください)

于 2013-08-01T13:39:09.930 に答える