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

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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 スタンドアロン アプリケーション 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

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

Start Hunting!