スタンドアロンアプリケーションの中で addpath コマンドを使用するとエラーとなるのはなぜですか?
조회 수: 5 (최근 30일)
이전 댓글 표시
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
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 スタンドアロン アプリケーション에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!