Matlab中load函数的用法

目录

语法

说明

示例

加载 MAT 文件中的所有变量

加载 MAT 文件中的特定变量

使用正则表达式加载特定变量

将变量列表加载到结构体数组中

加载 ASCII 文件


load函数的功能是将文件变量加载到工作区中。

语法

load(filename)

load(filename,variables)

load(filename,'-ascii')

load(filename,'-mat')

load(filename,'-mat',variables)

S = load(___)

load filename

说明

load(filenae) 从 filename 加载数据。

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

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

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

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

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

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

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

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

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

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

        例如,要加载名为 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 文件中的所有变量

        加载示例 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

加载 MAT 文件中的特定变量

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

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 包含变量 X、caption 和 map。创建要加载的变量名称元胞数组。

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

        仅将变量 X 和 caption 加载到结构体数组 S 中。

加载 ASCII 文件

        为多个 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 创建名为 mydata 的 double 类型的数组。查看 mydata 的相关信息。

whos mydata


  Name        Size            Bytes  Class     Attributes

  mydata      7x4               224  double    

filename - 文件名

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

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

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

注意:   当 filename 是字符串时,请不要使用命令形式。ASCII 文件必须包含数字的矩形表格,并且每行中的元素数目相等。文件分隔符(每行中的元素之间的字符)可以为空格、逗号、分号或制表符。文件可包含 MATLAB 注释(以百分比符号 % 开头的行)。

variables - 要加载的变量的名称

        要加载的变量的名称,指定为一个或多个字符向量或字符串标量。使用命令形式的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 仅加载文件中名称以 Mon 或 Tues 开头的变量。

S - 已加载的变量或数据

        已加载的变量,以结构体数组形式返回(如果 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 的变量。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

用法说明和限制:

  • 仅当生成 MEX 函数或代码进行 Simulink® 仿真时才使用 load。要加载编译时常量,请使用coder.load。

  • 不支持在未将函数值赋给结构体或数组的情况下使用该函数。例如,请使用 S = load(filename),而不是 load(filename)。

  • 输出 S 必须是不带任何下标的结构体或数组名称。例如,不支持 S(i) = load('myFile.mat')。

  • load 的参数必须为编译时常量字符向量。

  • 如果 MAT 文件中包含不支持的结构体,可使用 S = load(filename,variables) 仅加载支持的结构体。

  • 在用于代码生成的函数中,不支持使用 save 或将 coder.extrinsic 与 save 结合使用。要将工作区数据保存到 MAT 文件,请在生成代码之前使用 save 函数。

  • 当使用 load 函数加载其大小在运行时可能会更改的变量时,必须通过使用 coder.varsize 将变量显式声明为可变大小数据。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值