2012-03-16 4 views
1

私は最近Matlabで作業しています。私の質問は、数ヶ月にわたる私の使い方に由来し、私は解決できないようなものです。私は、私のプロジェクトで使用したい外部SVMツールボックス(OSU-SVM)を持っています。手動でツールボックスのパスを追加すると、システム全体が機能するようになります(右クリック - >パスに追加 - >選択したフォルダとサブフォルダ)。私がしたいのは、スクリプトにフォルダを追加することです。私は "addpath"コマンドを試しましたが、何らかの理由で、コマンドを実行するmファイル(スクリプト)に相対的なライブラリを見つけることができません。以下はコードの例です:Matlabとaddpath

% Add OSU SVM system 
addpath(genpath('./osu-svm/')); 

私はM-ファイルへの相対的なフォルダを使用してパスを追加したい理由は、コードがそのしません別の環境で実行する必要があるということですツールボックスをインストールしてください。コードは、私が開発しているものとは異なるOSで実行される予定です。つまり、Windows Matlabを実行してコードを開発し、完成したシステムをLinuxマシンで実行する必要があります。私のファイルを実行するプロセスは、できるだけ痛みのないものでなければならず、ユーザーからの多くの入力は必要ありません。そのため、私はパスの手動追加を特に避けようとしています。

相対パスを使用して "uigetfile"を使用する場合、同様の問題が発生します。私は、私が同時にこれらの両方を解決するのに役立つ、私が見逃しているものがあると信じています。どんな助けでも大歓迎です。

答えて

2

代わりに「./osu-svm/」のみ使用の

fullfile('.','osu-svm') 

それはWindows上であなたのために動作しない理由は、ファイルの区切り文字をスラッシュ使用していることです。フルファイルは、各OSの正しいファイル区切り文字を含むファイル文字列を作成します。

MATLABドキュメントのgenpath例もまた http://www.mathworks.co.uk/help/techdoc/ref/genpath.html

FULLFILE使用し、 ''それはちょうど "現在のディレクトリとの相対"を意味し、コマンドから除外することができるので、ちょっと不要です。おそらくあなたは1つのディレクトリを意味するでしょうか?

'..' 

???

+0

ありがとうございました。私は "を使用することに慣れています。現在のフォルダが使用されていることを明示的に消去します。 – user901898