在 Matlab 独立 GUI.exe 中包含多个文件夹(包含图像、脚本等)

Posted

技术标签:

【中文标题】在 Matlab 独立 GUI.exe 中包含多个文件夹(包含图像、脚本等)【英文标题】:Including multiple folders (with images, scripts, etc) within a Matlab standalone GUI.exe 【发布时间】:2018-01-08 17:48:33 【问题描述】:

我有一个具有多个 GUI 的软件。为了更好地组织事情(或者至少这是我的想法),我在根目录中创建了几个文件夹,如图所示。

在文件夹中,我有不同格式的文件和一些 Matlab 脚本。

使用应用程序编译器创建 Matlab 可执行文件时,在选择主文件后,Matlab 没有直接检测到这些相同的文件夹对于代码运行很重要。因此我决定手动添加文件夹。

创建并安装设置后,通过在 Matlab 环境中运行应用程序,我能够调试软件未运行的一个可能问题。

正如您在第一张图片中看到的,“play.png”位于 Images 文件夹中。

我的问题非常直接:如何强制 Matlab 编译器了解所有这些文件夹都将包含在设置中?不仅要包括在内,还要包括他们的路径'

【问题讨论】:

【参考方案1】:

可能会发生两件事:

    您没有将文件包含在包中。 确保使用mcc-a 选项包含它们:

    mcc -m hello.m -a ./testdir/*
    

    你也可以使用GUI,当然see here。

    您在错误的位置查找包含的文件。使用ctfroot 作为代码中所有路径的根:

    img_file_name = fullfile(ctfroot,'Images','brain.jpg'));
    

    查看解压后的CTF文件(执行时会自动解压)查看里面的目录结构。 ctfroot 指向解压后的 CTF 文件的根目录。

PS:This blog post 可能会给你更多指点。

【讨论】:

Cris "-a" 选项,我该如何使用它?我应该继续使用应用程序编译器还是应该使用命令行? 已经尝试了所有选项,包括删除之后弹出的“ADDPATH”问题。软件仍然没有完全运行。现在正在识别图像,但某些文件夹中包含的重要包仍未正确创建。 @16per9,“重要的包没有被创建”是什么意思?不是向 CTF 添加文件吗?是添加它们但您的代码找不到它们吗?源代码文件是否丢失? 文件夹LDOF_src里面有多个mex文件,c++还有matlab脚本。编译后,当检查 AppData 中的临时文件夹时,LDOF_src 文件夹在那里,但他应该有 50% 的脚本。很奇怪…… 我做到了@Cris! :D 主要问题是 C++ 文件。其中一个 C++ 文件存在目录问题,因此……是的,一个简单的目录破坏了所有编译器!老兄感谢您的支持:=

以上是关于在 Matlab 独立 GUI.exe 中包含多个文件夹(包含图像、脚本等)的主要内容,如果未能解决你的问题,请参考以下文章

不能在 Linux 的 Matlab 中包含 OpenCV 函数

matlab符号求解器:如何在答案中包含点运算符

在 MATLAB 中,我可以在同一个文件中包含脚本和函数定义吗?

Matlab:对多个文件起作用

CONTAINS 在多列中包含多个术语

在 Qt for Android 中包含多个源目录