【问题标题】:File addressing of code for MATLAB compilerMATLAB 编译器的代码文件寻址
【发布时间】:2014-08-01 12:18:14
【问题描述】:

在我的代码中,有一些函数,如 imshowfopen 文件需要寻址。当我在 MATLAB 中使用我的程序时,我使用pwdimshow([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 runfile installed with your application

谢谢。

【问题讨论】:

    标签: matlab matlab-deployment mcc


    【解决方案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 运行时相同。您必须使用相对路径或密码。这将使您更容易理解为什么您的应用程序失败、所需的文件和文件夹,并且它会简化编译过程,因为您不需要将文件添加到已部署的应用程序中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 2021-11-25
    • 1970-01-01
    • 2012-04-13
    • 2014-10-28
    相关资源
    最近更新 更多