本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

load

将文件变量加载到工作区中

说明

示例

load(filename)filename 加载数据。

  • 如果 filename 是 MAT 文件,load(filename) 会将 MAT 文件中的变量加载到 MATLAB® 工作区。

  • 如果 filename 是 ASCII 文件,load(filename) 会创建一个包含该文件数据的双精度数组。

示例

load(filename,variables) 加载 MAT 文件 filename 中的指定变量。

示例

load(filename,'-ascii')filename 视为 ASCII 文件,而不管文件扩展名如何。

load(filename,'-mat')filename 视为 MAT 文件,而不管文件扩展名如何。

load(filename,'-mat',variables) 加载 filename 中的指定变量。

示例

S = load(___) 使用前面语法组中的任意输入参数将数据加载到 S 中。

  • 如果 filename 是 MAT 文件,则 S 是结构数组。

  • 如果 filename 是 ASCII 文件,则 S 是包含该文件数据的双精度数组。

示例

load filename 是该语法的命令形式。命令形式需要的特殊字符较少。您无需键入括号或者将输入括在单引号或双引号内。使用空格(而不是逗号)分隔各个输入项。

例如,要加载名为 durer.mat 的文件,以下语句是等效的:

load durer.mat      % command form
load('durer.mat')   % function form

您可以包括先前语法中介绍的任何输入。例如,要加载名为 X 的变量:

load durer.mat X       % command form
load('durer.mat','X')  % function form

当有任何输入(例如 filename)为变量或字符串时,请不要使用命令格式。

示例

全部折叠

加载示例 MAT 文件 gong.mat 中的所有变量。请在加载操作前后检查工作区的内容。

disp('Contents of workspace before loading file:')
whos

disp('Contents of gong.mat:')
whos('-file','gong.mat')

load('gong.mat')
disp('Contents of workspace after loading file:')
whos

您也可以使用命令语法加载变量。清除以前加载的变量,并重复 load 操作。

clear y Fs

load gong.mat

仅加载示例文件 handel.mat 中的变量 y。如果工作区已包含变量 yload 操作将使用文件中的数据来覆盖它。

load('handel.mat','y')

您也可以使用命令语法加载变量 y

load handel.mat y

查看示例文件 accidents.mat 的内容。

whos -file accidents.mat
 Name              Size            Bytes  Class     Attributes

  datasources       3x1              2724  cell                
  hwycols           1x1                 8  double              
  hwydata          51x17             6936  double              
  hwyheaders        1x17             2758  cell                
  hwyidx           51x1               408  double              
  hwyrows           1x1                 8  double              
  statelabel       51x1              6596  cell                
  ushwydata         1x17              136  double              
  uslabel           1x1               138  cell                

使用函数语法加载文件中所有名称不以 'hwy' 开头的变量。

load('accidents.mat', '-regexp', '^(?!hwy)...')

或者使用命令语法来加载相同变量。

load accidents.mat -regexp '^(?!hwy)...'

文件 durer.mat 包含变量 Xcaptionmap。创建要加载的变量名称元胞数组。

filename = 'durer.mat';
myVars = {'X','caption'};
S = load(filename,myVars{:})
S = struct with fields:
          X: [648x509 double]
    caption: [2x28 char]

仅将变量 Xcaption 加载到结构体数组 S 中。

为多个 4 列矩阵创建一个 ASCII 文件,并将数据重新加载回双精度数组之中。

a = magic(4);
b = ones(2, 4) * -5.7;
c = [8 6 4 2];
save -ascii mydata.dat a b c
clear a b c

load mydata.dat -ascii

load 创建名为 mydatadouble 类型的数组。

查看 mydata 的相关信息。

whos mydata
  Name        Size            Bytes  Class     Attributes

  mydata      7x4               224  double              

输入参数

全部折叠

文件的名称,指定为字符向量或字符串标量。如果未指定 filenameload 函数将搜索名为 matlab.mat 的文件。

filename 可包含文件扩展名以及完整或部分路径。如果 filename 没有扩展名(即句点后没有任何文本),load 会搜索名为 filename.mat 的文件。如果 filename 的扩展名不为 .matload 函数会将该文件视为 ASCII 数据。

使用命令形式的 load 时,不需要将输入括在单引号内。但如果 filename 包含空格,则您必须将参数括在单引号中。例如,load 'filename withspace.mat'

注意

filename 是字符串时,请不要使用命令形式。

ASCII 文件必须包含数字的矩形表格,并且每行中的元素数目相等。文件分隔符(每行中的元素之间的字符)可以为空格、逗号、分号或制表符。文件可包含 MATLAB 注释(以百分比符号 % 开头的行)。

示例: 'myFile.mat'

要加载的变量的名称,指定为一个或多个字符向量或字符串标量。使用命令形式的 load 时,您无需将输入括在单引号中。

注意

variables 是字符串时,请不要使用命令形式。

variables 可以采用以下格式之一。

variables 输入的格式要加载的变量
var1,...,varN加载列出的变量,指定为单个字符向量或字符串。
可使用 '*' 通配符来匹配模式。例如,load('filename.mat','A*')load filename.mat A* 会加载文件中所有名称以 A 开头的变量。
'-regexp',expr1,...,exprN只加载名称与正则表达式匹配的变量或字段,指定为字符向量或字符串。例如,load('filename.mat','-regexp','^Mon','^Tues')load filename.mat -regexp ^Mon ^Tues 仅加载文件中名称以 MonTues 开头的变量。

输出参数

全部折叠

已加载的变量,以结构体数组形式返回(如果 filename 是 MAT 文件)。

已加载的数据,以 double 类型的 m×n 数组形式返回(如果 filename 是 ASCII 文件)。m 等于文件行数,n 等于每一行的值数。

算法

如果未指定 load 函数的输出,MATLAB 会创建一个根据加载的文件命名的变量(删除任何文件扩展名)。例如,以下命令

load mydata.dat

将数据读取到名为 mydata 的变量中。

要创建变量名称,load 会在 filename 中的任何前导下划线或数字前面添加一个 X,并使用下划线取代任何其他非字母字符。例如,以下命令

load 10-May-data.dat

创建一个名为 X10_May_data 的变量。

扩展功能

在 R2006a 之前推出