数据的导入与导出
- 注意设置当前路径为文件所在路径
save
- save
save XXX;
是将当前文件中的全部变量存起来,得到一个名为XXX.mat的文件。save filename
是命令形式的语法。命令形式需要的特殊字符较少。您无需键入括号或者将输入括在单引号或双引号内。使用空格(而不是逗号)分隔各个输入项。1
2
3
4
5
6
7
8
9例如,要保存名为 test.mat 的文件,这些语句是等效的:
save test.mat % command form
save('test.mat') % function form
您可以包括先前语法中介绍的任何输入。例如,要保存名为 X 的变量:
save test.mat X % command form
save('test.mat','X') % function form
当有任何输入(例如 filename)为变量或字符串时,请不要使用命令格式。
load
- load
load filename
是该语法的命令形式。命令形式需要的特殊字符较少。您无需键入括号或者将输入括在单引号或双引号内。使用空格(而不是逗号)分隔各个输入项。1
2
3
4
5
6
7
8
9
10例如,要加载名为 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)为变量或字符串时,请不要使用命令格式。
text文件的读取与写入
textread
- textread
- 读取文本文件中的数据;写入多个输出
- 语法:
[A,B,C,...] = textread(filename,format)
[A,B,C,...] = textread(filename,format,N)
[...] = textread(...,param,value,...)
- 必须严格遵守用法不可出现
data=textread(filename,format,N)
的形式 - 其中括号里面变量的个数必须和format中定义的个数相同。
- textread不用先fopen那个文件,适用于格式统一的txt文件的一次性大批量读取。textread读取某个文件后,下次再用textread读取这个文件时,还是会从文件头开始读取。
[A,B,C,…]=textread(filename,format,N)
- [A,B,C,…]:读取的数据
- Filename:文件名
- Format:读取格式
- N:读取次数 其中 N 是大于零的整数。如果 N 小于零,textread 将读取整个文件。
- 如果每N行相同格式的数据,可采用
[A,B,C,…] = textread (filename,format,N)
的语法,读取N次。 - 读取大型文本文件、从文件中的特定点读取或将文件数据读取到元胞数组而非多个输出时,您可以首选使用 textscan 函数。
textscan
- 导入混合格式文本
textscan(fid, 'format', N, 'param', value);
- 其中,fid为文件句柄;format为读取格式;N表示用该格式读取N次数据;’param’, value(可选项)指定分隔符和值对。
- 注意:使用textscan之前,必须先用fopen打开要读入的文件;函数textread用法类似。
1
2
3
4
5fid = fopen('myfile.txt');
C = textscan(fid, '%s%s%f%d%s');
fclose(fid);使用textscan函数读取文件,输出C为1*5的细胞数组,每个数组中存放每列的数据
优势:
- textscan更适合读入大文件;
- textscan可以从文件的任何位置开始读入,而textread 只能从文件开头开始读入;
- textscan也可以从上一次textscan结束的位置开始读入,而textread不能;
- textscan只返回一个数组(其实应该说是一个细胞矩阵),而textread要返回多个数组(嗯嗯);
- textscan提供更多转换读入数据的选择;
- textscan提供给用户更多的配置参数。
- textread不用先fopen那个文件,适用于格式统一的txt文件的一次性大批量读取。而使用textscan函数之前需要先用fopen函数打开要读取的文件并返回句柄fid
- textscan函数每次读完数据后,其对应的句柄fid都是指向接下来要读数据的地方,类似于C函数中的文件读取指针,这样更方便于读取文本时的精确控制。
- extscan函数可以将多组数据读到一个元胞矩阵中,而textread函数只能将数据分别读取到不同的向量中。比如一个含有10行3列浮点数的文件,textscan函数可以将之读取到一个变量名A下
A=textscan(fid, '%f%f%f')
, 而使用textread函数必须将之读入到三个变量名中[A,B,C] = textread(filename,'%f%f%f')
。
xls文件的读取与写入
xlsread
- xlsread
- 读取 Microsoft Excel 电子表格文件
语法:
num = xlsread(filename)
读取名为 filename 的 Microsoft® Excel® 电子表格工作表中的第一张工作表,并在一个矩阵中返回数值数据。num = xlsread(filename,sheet)
读取指定的工作表。num = xlsread(filename,xlRange)
从工作簿的第一个工作表的指定范围内读取数据。使用 Excel 范围语法,例如 ‘A1:C3’。
[num,txt,raw]=xlsread('data1.xlsx','Sheet1','A1:H4')
- 数据返回num;文本返回txt;不处理直接作为元胞返回raw
A=xlsread(filename,sheet,’range’)
- A:读取的数据
- Filename:文件名
- Sheet:读取的工作表
- Range:读取范围
- filename - 文件名 字符向量 | 字符串
- 文件名,指定为字符向量或字符串。
- 示例: ‘myFile.xlsx’ 或 “myFile.xlsx”
xlswrite
- 写入 Microsoft Excel 电子表格文件
语法:
xlswrite(filename,A)
将矩阵 A 写入 Microsoft® Excel® 电子表格工作簿 filename 中的第一张工作表,从单元格 A1 开始写入。xlswrite(filename,A,sheet)
将数据写入指定的工作表。xlswrite(filename,A,xlRange)
将数据写入工作簿的第一个工作表中由 `xlRange 指定的矩形区域内。使用 Excel 范围语法,例如 ‘A1:C3’。xlswrite(filename,A,sheet,xlRange)
将数据写入指定的工作表和范围。status = xlswrite(___)
使用先前语法中的任何输入参数返回写入操作的状态。当操作成功时,status 为 1。否则,status 为 0。
- xlRange - 矩形范围 字符向量 | 字符串
- 矩形范围,指定为字符向量或字符串。
- 使用两个对角指定 xlRange,这两个对角用来定义要写入的区域。例如,’D2:H4’ 表示工作表上两个角落 D2 和 H4 之间的 3×5 矩形区域。xlRange 输入不区分大小写,并使用 Excel A1 引用样式(请参阅 Excel 帮助)。xlswrite 不能识别命名范围。
s=xlswrite(filename,data,sheet,range)
- s:是否写入成功
- Filename:文件名
-Data:被写入的数据 - Sheet:写入的工作表
- Range:写入的范围