スタンドアロンアプリケーションの中で addpath コマンドを使用するとエラーとなるのはなぜですか?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 28 de Mzo. de 2016
Editada: MathWorks Support Team
el 21 de Jun. de 2022
自作の .m ファイルや、startup.m 内で addpath コマンドを使用してパスの追加をしています。MATLAB Compiler でこのような .m ファイルをスタンドアロンアプリケーション化後、実行すると以下のようなエラーとなります。
An unknown error occurred while executing MATLAB code. MCL:Runtime:InternalFeval
Respuesta aceptada
MathWorks Support Team
el 21 de Jun. de 2022
Editada: MathWorks Support Team
el 21 de Jun. de 2022
このような挙動は、MATLAB Compiler でコンパイルを行ったマシンでスタンドアロンアプリケーションを実行させると起こります。
複数の .m ファイルで構成される MATLAB プログラムを、MATLAB Compiler でコンパイルする際、メインの .m ファイルで使用される、サブの .m ファイルが特定のディレクトリにある場合、そのパスはスタンドアロンアプリケーションに含まれます(自動でパスが登録されます)。
このため、addpath コマンド等で追加でパス設定を行うと、ファイルの検索の順番が変更され、同じ名前の別のファイルへのアクセスが発生し、エラーとなる場合があります。
基本的に、スタンドアロンアプリ内では、パスの取得は問題ありませんが、パスの設定、追加等は推奨されておりません。
上記の理由により、回避方法として isdeployed により addpath の使用を避けることをご検討ください。
例えば、以下をコンパイルすることにより、エラーを回避できます。
-----------------------
if ~isdeployed
addpath([pwd '\functions'])
end
-----------------------
スタンドアロンアプリケーションにおけるパスの取り扱いについては以下で紹介されています。
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre スタンドアロン アプリケーション en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!