主要内容

自定义应用程序访问mat文件

为什么要编写自定义应用程序?

将数据导入MATLAB®应用程序,请参阅导入数据的方法.要将数据保存到mat文件,请参见保存并加载工作区变量.当您在MATLAB中编写整个应用程序时,或者如果您与其他MATLAB用户共享数据,请使用这些程序。然而,在某些情况下,您必须编写一个自定义程序来与数据交互。例如:

  • 您的数据具有自定义格式。

  • 您为没有运行MATLAB的用户创建应用程序,并且希望向他们提供MATLAB数据。

  • 您希望从外部应用程序读取数据,但您不能访问源代码。

在编写自定义应用程序之前,通过回顾以下主题,确定MATLAB是否满足您的数据交换需求。

如果这些特性还不够,您可以创建定制的C/ c++或Fortran程序,以应用程序所需的格式读写数据文件。有两种类型的定制程序:

MAT-File界面库

MAT-File API包含读和写MAT-File的例程。从你自己的C/ c++和Fortran程序中调用这些例程。使用这些例程,而不是尝试编写自己的代码,来执行这些操作,因为使用库可以使应用程序免受将来对mat文件结构的更改。有关更多信息,请参见MAT-File API库和Include文件

MATLAB提供的MATFile类型,用于表示mat文件。

MAT-File例程

MAT-File API函数

目的

matOpen

打开一个MAT-file。

matClose

关闭MAT-file。

matGetDir

从mat文件中获取MATLAB数组列表。

matGetVariable

从mat文件中读取MATLAB数组。

matPutVariable

写一个MATLAB数组到mat文件。

matGetNextVariable

从mat文件中读取下一个MATLAB数组。

matDeleteVariable

从mat文件中删除一个MATLAB数组。

matPutVariableAsGlobal

将MATLAB数组放入mat文件中,以便负载命令将其放置到全局工作区中。

matGetVariableInfo

从mat文件加载一个MATLAB数组头(无数据)。

matGetNextVariableInfo

从mat文件(无数据)加载下一个MATLAB数组头。

MAT-File C-Only例程

matGetFp

得到一个ANSI®C文件指针指向mat文件。

mat文件接口库不支持由用户定义的类创建的MATLAB对象。金宝app

不要使用MAT-File API函数在不同的线程上创建不同的MATLAB会话。MATLAB库不是多线程安全的,所以一次只能在单个线程上使用这些函数。

在平台之间交换数据文件

您可以在不同的计算机系统上使用MATLAB软件,并将MATLAB应用程序发送给其他系统上的用户。MATLAB应用程序由包含函数和脚本的MATLAB代码和包含二进制数据的mat文件组成。

这两种类型的文件都可以在机器之间直接传输:MATLAB源文件,因为它们是平台独立的,而mat文件,因为它们在文件头中包含机器签名。MATLAB在加载文件时检查签名,如果签名表明文件是外部的,则执行必要的转换。

在不同的机器架构中使用MATLAB需要一种在机器之间交换二进制和ASCII数据的工具。此类工具的示例包括FTP、NFS和Kermit。在使用这些程序时,要小心传输mat文件二进制文件模式和MATLAB源文件ASCII文件模式.无法正确设置这些模式会破坏数据。