スタンドアロンアプリケーションの中で addpath コマンドを使用するとエラーとなるのはなぜですか?

5 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2016 年 3 月 28 日
編集済み: MathWorks Support Team 2022 年 6 月 21 日
自作の .m ファイルや、startup.m 内で addpath コマンドを使用してパスの追加をしています。MATLAB Compiler でこのような .m ファイルをスタンドアロンアプリケーション化後、実行すると以下のようなエラーとなります。
An unknown error occurred while executing MATLAB code. MCL:Runtime:InternalFeval 
 

採用された回答

MathWorks Support Team
MathWorks Support Team 2022 年 6 月 21 日
編集済み: MathWorks Support Team 2022 年 6 月 21 日
このような挙動は、MATLAB Compiler でコンパイルを行ったマシンでスタンドアロンアプリケーションを実行させると起こります。
複数の .m ファイルで構成される MATLAB プログラムを、MATLAB Compiler でコンパイルする際、メインの .m ファイルで使用される、サブの .m ファイルが特定のディレクトリにある場合、そのパスはスタンドアロンアプリケーションに含まれます(自動でパスが登録されます)。
このため、addpath コマンド等で追加でパス設定を行うと、ファイルの検索の順番が変更され、同じ名前の別のファイルへのアクセスが発生し、エラーとなる場合があります。
基本的に、スタンドアロンアプリ内では、パスの取得は問題ありませんが、パスの設定、追加等は推奨されておりません。
上記の理由により、回避方法として isdeployed により addpath の使用を避けることをご検討ください。 
例えば、以下をコンパイルすることにより、エラーを回避できます。 
----------------------- 
if ~isdeployed 
    addpath([pwd '\functions']) 
end 
----------------------- 
スタンドアロンアプリケーションにおけるパスの取り扱いについては以下で紹介されています。 
 

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeスタンドアロン アプリケーション についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!