如何部署一个保存.mat文件文件的matlab代码,实现函数间通信,并将数据保存在本地目录

How can I deploy a matlab code that saves .mat files files to communicate between functions, and saves data in the local directory

我使用 GUIDE 在 matlab 中编写了一个 GUI,我使用的数据结构在 matlab 应用程序的本地目录中保存为 .mat 文件。 .mat 文件用于在 GUI 中的不同函数之间传递变量,例如,在函数的开头我会写

load data;

而且我可以访问之前存储的所有变量。我现在正在尝试使用 matlab 编译器创建一个独立的应用程序,但是,该应用程序似乎没有将矩阵保存在本地目录中,也没有以 .mat 格式保存任何结果。有什么解决方法吗?我需要 .mat 功能,因为我分析视频并将每个帧数据保存在我在本地目录中创建的文件夹中的单独 .mat 文件中。

当您 运行 一个已编译的 MATLAB 应用程序时,.exe 文件会自行解压缩到一个临时文件夹中,并且 运行 在那里。在应用程序中,您可以使用命令 ctfroot.

访问解压到的文件夹

您可以参考与此命令的输出相关的文件夹,例如matfilefolder = fullfile(ctfroot, 'matfiles').

或者,您可能会发现使用临时文件夹来存储文件更容易或更易于维护。您可以使用命令 tempdir 获取系统临时文件夹的路径,然后在其中创建一个子文件夹。

如果您需要您的应用程序在 MATLAB 中 运行 与编译时有不同的行为,您可以使用命令 isdeployed,编译时 return 为真,否则为假,然后根据输出切换行为。