2

を呼び出してファイルを検索する MATLAB ツールボックスをインストールしています。

which

入力すると

which filename 

バッシュで、私は得る

/usr/local/bin/filename. 

しかし

which('filename')

MATLABコマンドウィンドウで言う

'filename' not found. 

バイナリファイルがそこにあることがわかります

/usr/local/bin.

また、

/usr/local/bin

が MATLAB 検索パスに追加されているため、ここで何が起こっているのかわかりません。助言がありますか??

ありがとう!!アイーシャ

4

2 に答える 2

1

ここでは、 which の代わりに exist を使用できます。ファイルが存在する場合、exist はコード 2 を返します。

ただし、これは機能します。たとえば、検索パス内の .pdf ファイル:

>> which('Fritsch FN - Monontone piecewise cubic interpolation')
'Fritsch FN - Monontone piecewise cubic interpolation' not found.

それが見つからないことを確認してください。ただし、拡張子を含む完全な名前を指定すると、正しく機能します。

>> which('Fritsch FN - Monontone piecewise cubic interpolation.pdf')
/Users/woodchips/Desktop/Fritsch FN - Monontone piecewise cubic interpolation.pdf

もちろん、exist も機能します。

>> exist('Fritsch FN - Monontone piecewise cubic interpolation.pdf','file')
ans =
     2

私の推測では、拡張子を含めなかったために問題が発生します。ドキュメントによると、明らかに.m、.p、および.mdlファイルを自動的に検索します。

于 2012-05-11T18:43:39.653 に答える
1

bashwhichは、Linux パスにある実行可能ファイルのみを検索します。MATLABコマンドは、コマンドのMATLAB ドキュメントに従って、 whichMATLAB ファイル ( *.m、および MDL ファイル) のみを検索します。MATLABは他のバイナリを見つけません。ほとんどの場合、ファイルがまたはで名前が付けられ、そのディレクトリが Linux パスと MATLAB パスの両方にある場合、bashと MATLABの両方を使用してファイルを見つけることができます。*.pwhichwhichwhichwhich*.m*.p

私はあなたが持っていると仮定しますがfilename、持って/usr/local/bin/いませんfilename.m。問題は、のパスがfilename.mMATLAB パスにないことも考えられます。コマンドを使用pathして MATLAB パスを確認および変更するか、メニューを使用します: [ファイル] -> [パスの設定]。

そのため、whichcommand が一部の MATLAB ツールボックスのインストール スクリプトまたはインストール関数 (MATLAB プログラム) で使用されている場合、通常の Linux バイナリ ファイル ではなく、MATLAB プログラム ファイルfilename.mまたはが検索されます。filename.pfilename

于 2012-05-11T18:30:13.523 に答える