MATLAB 编译器的代码文件寻址
Posted
技术标签:
【中文标题】MATLAB 编译器的代码文件寻址【英文标题】:File addressing of code for MATLAB compiler 【发布时间】:2014-08-01 12:18:14 【问题描述】:在我的代码中,有一些函数,如 imshow
或 fopen
文件需要寻址。当我在 MATLAB 中使用我的程序时,我使用pwd
像imshow([pwd '/image.jpg'])
进行寻址并且程序运行并正常工作,但是当我在安装程序(重新分发)后编译我的程序时,当我在桌面中打开快捷方式时,会出现一条错误消息我的程序找不到的标题 image.jpg
。当我检查搜索地址时,它就像:
C:/User/Desktop/image.jpg
我阅读了此页面,但我不知道如何使用此寻址。
http://www.mathworks.com/matlabcentral/answers/59148-for-stand-alone-exe-how-do-i-include-a-folder-of-files-and-know-how-to-access-them
除此之外,我不知道应该在 MATLAB 编译器选项中的何处添加这些文件(图像和文本)。在file required for your application to run
或file installed with your application
。
谢谢。
【问题讨论】:
【参考方案1】:那是因为您的图像不在您当前的路径中(即本例中的桌面)。
如果您想使用图像,您应该在 deploytool 的“共享资源和帮助文件”中包含图像,并在您的脚本/函数中引用链接中指定的图像,使用:
if isdeployed
imagepath = [ctfroot filesep 'image.jpg'];
else
imagepath = [pwd filesep 'image.jpg'];
end
% Now use imagepath as if it was [pwd filesep 'image.jpg']
[A] = imread(imagepath);
其他选项是将文件 (image.jpg) 包含在与最终可执行文件相同的路径中,因为您是从 pwd 调用图像。
【讨论】:
感谢您的回答。我正在使用 R2014a。可以选择添加:应用程序运行所需的文件或随应用程序一起安装的文件。 新的搜索路径:C:\Users\User\AppDAta\Local\Temp\User\mcrCache8.3\my_Program_name0\image.jpg
。错误:此文件不存在。
当我将文件添加到file required for your application to run
现在文件在C:\Users\User\AppDAta\Local\Temp\User\mcrCache8.3\my_Program_name0\my_Program_name
但错误指的是`C:\Users\User\AppDAta\Local\Temp\User\mcrCache8.3\my_Program_name0 `
另一个问题@Dani。我的一些文件在我的代码之外的文件夹中。编译程序后如何获得相同的结构?
您可以做什么,以及我实际上在做什么,因为我认为更容易和更透明,是在应用程序的最终文件夹中重新创建您的目录和文件。您可以在 ZIP、RAR、EXE 安装程序或其他任何东西中分发您的应用程序,因此最终用户将拥有 Matlab EXE 和其余文件,其“文件结构”与从 matlab 运行时相同。您必须使用相对路径或密码。这将使您更容易理解为什么您的应用程序失败、所需的文件和文件夹,并且它会简化编译过程,因为您不需要将文件添加到已部署的应用程序中。以上是关于MATLAB 编译器的代码文件寻址的主要内容,如果未能解决你的问题,请参考以下文章