MATLAB MAT 文件

Ammar Ali 2023年1月30日
  1. 使用 MATLAB 中的 matfile() 函数创建 MAT 文件
  2. 使用 MATLAB 中的 save() 函数将数据保存在 MAT 文件中
  3. 使用 MATLAB 中的 load() 函数从 MAT 文件中加载数据
MATLAB MAT 文件

在本教程中,我们将讨论如何使用 MAT 文件在 MATLAB 中存储和加载数据。

使用 MATLAB 中的 matfile() 函数创建 MAT 文件

你可以使用 matfile() 函数创建具有特定名称的 MAT 文件。你必须在函数中传递文件名和文件扩展名才能创建它。例如,让我们使用 matfile() 函数创建一个文件名为 fileName.mat 扩展名的 MAT 文件。请参见下面的代码。

mat_file = matfile('fileName.mat')

你也可以使用 matfile() 函数启用或禁用 MAT 文件的写访问。例如,请参见下面的代码。

mat_file = matfile('fileName.mat','Writable',true)

在上面的代码中,我们将对文件的写访问权限设置为 true,这意味着我们可以将数据保存在其中,如果写访问权限为 false,则无法将数据保存到文件中。

使用 MATLAB 中的 save() 函数将数据保存在 MAT 文件中

你可以使用 save() 函数将任何类型的数据保存在 MAT 文件中。例如,让我们在上面创建的 MAT 文件中保存一个矩阵和一个单元格。请参见下面的代码。

myMatrix = [1 2 3; 4 5 6];
myCell = {'a','b','c'};
mat_file = matfile('fileName.mat','Writable',true);
save('fileName.mat','myMatrix')
mat_file.myCell = myCell;

在上面的代码中,我们使用 save() 函数将 myMatrix 保存在 MAT 文件 fileName.mat 中。我们还使用对象 mat_filemyCell 保存在 MAT 文件 fileName.mat 中。如果使用 save() 函数保存数据,它将覆盖现有数据,但是,如果你使用文件的对象,它将不会更改先前的数据,并将被单独存储在 MAT 文件中。请注意,MAT 文件将保存在 .m 文件的当前目录中。如果要更改目录,则必须在该特定文件中创建一个新的 .m 文件,然后将 MAT 文件保存在那里。

使用 MATLAB 中的 load() 函数从 MAT 文件中加载数据

你可以使用 load() 函数从 MAT 文件中加载数据。例如,让我们从上面创建的 MAT 文件中加载数据。请参见下面的代码。

data = load('fileName.mat')

在上面的代码中,我们使用 load() 函数加载了 MAT 文件 fileName.mat。确保文件与 .m 文件位于同一目录中;否则,MATLAB 将给出错误。要从其他目录加载 MAT 文件,则必须传递完整的文件路径以及其名称和扩展名以进行加载。例如,请参见下面的代码。

data = load('C:\myFolder\myFile.mat')

你可以使用 whos 功能检查变量的信息,例如变量类型和大小,这些信息存储在已加载的 MAT 文件中。例如,让我们检查存储在上述 MAT 文件 fileName.mat 中的变量。请参见下面的代码。

whos('-file','fileName.mat')

输出:

  Name          Size            Bytes  Class     Attributes

  myCell        1x3               318  cell                
  myMatrix      2x3                48  double  

从输出中可以看到,MAT 文件 fileName.mat 具有 cell 数组和存储在其中的矩阵。如果只想从 MAT 文件中提取并打印一个变量,则可以使用该变量的名称来提取它。例如,让我们从上面的 MAT 文件中提取变量 myCell。请参见下面的代码。

data = load('fileName.mat');
mat = data.myMatrix

输出:

mat =

     1     2     3
     4     5     6

从输出中可以看到,我们已经从 MAT 文件中提取了所需的变量,并将其存储在变量 mat 中。查看此链接以获取有关 MAT 文件的更多信息。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook