matlab 文件读取I/O操作

Matlab程序可以看作数据处理器,该处理器从外部源(文件,网络,磁盘等)读入数据,并将数据处理结果输出到指定设备(文件,网络,磁盘等),即I/O操作,在matlab中提供了许多读取和写入文件的函数,通过这些函数可以控制I/O操作。
利用save命令保存工作区域或工作区任何指定的文件,文件名为matlab.mat,mat文件可以通过load命令再次导入工作区。
2.底层文件基本I/O操作
matlab低级文件I/O函数

函数说明
fclose关闭
feof测试文件结束
ferror查询文件I/O的错误状态
fgetl读文件的行,忽略回车符
fgets读文件的行,包括回车符
fopen打开文件
frewind返回到文件开始的位置
fseek设置文件位置指示符
ftell获取文件位置指示符

fopen函数用于打开一个文件并返回这个文件的文件句柄值。它的基本调用形式如下:
fileID=fopen(filename);
fileID=fopen(filename,permission);
fileID=fopen(filename,permission,machinefmt,encodingIn);
[fileID,errmsg]=fopen(___);
fIDs=fopen(‘all’);
filename=fopen(fileID);
[filename,permission,machinefmt,encodingout]=fopen(fileID);
其中fileID用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名filename用字符串形式表示,代表待打开的数据文件。permission表示打开方式,常见的打开方式如表5-2所示

打开方式说明
‘r’只读方式打开文件(默认的打开方式),该文件必须已存在
‘r+’读写方式打开文件,打开后先读后写,该文件必须已存在
‘w’打开后写入数据,若该文件存在则更新;不存在则创建;
‘w+’读写方式打开文件,先读后写,若该文件存在则更新;不存在则创建;
‘a’在打开的文件末端添加数据,若文件不存在则创建;
‘a+’打开文件后,先读入数据再添加数据,文件不存在则创建;

fclose函数用来关闭打开的文件并返回文件操作码。文件在进行读、写等操作后,应及时关闭。fclose的调用格式为:
fclose(fileID)
fclose(‘all’)
status=fclose(…)
该函数关闭fileID所表示的文件。status为关闭文件操作的返回代码,若关闭文件成功,返回0,否则返回-1.若要关闭所有已打开的文件使用fclose(‘all’)。
3.文件的读写
3.1二进制文件的读写
对于Matlab而言,二进制文件相对容易进行写操作。函数fwrite的作用是将一个矩阵元素按照所定的二进制格式写入斗个打开的文件中,并返回成功写入的数据个数。其调用格式为:
fwrite(fileID,A);
fwrite(fileID,A,precision)
fwrite(fileID,A,precision,skip)
fwrite(fileID,A,precision,skip,machineformat)
count=fwrite(…)
其中count返回所写的数据元素个数,fileID为文件句柄,A用来存放写入文件的数据,precision代表数据精度,默认的数据精度为uint8.
例子:将矩阵写入二进制文件。
4.记事本数据的读写:
Matlab的函数fprintf()可以将数据按指定格式写入到文本中。其调用格式为:
fprintf(fileID,formatSpec,A1,…,An)
fprintf(formatSpec,A1,…,An)
nbytes=fprintf(__)
fileID为文件句柄,指定要写入数据的文件。formatSpec是用来控制所写数据格式的格式符,与fscanf()函数相同。A是用来存放数据的矩阵。
例子:将矩阵写入记事本文件。
fscanf函数可以读取文本文件的内容,并按指定格式存入矩阵,其 调用格式为:
A=fscanf(fileID,formatSpec);
A=fscanf(fileID,formatSpec,sizeA);
[A,count]=fscanf(_)
其中A用来存放读取的数据。count返回所读取的数据元素个数。fileID为文件句柄。format用来控制读取的数据格式,由%加上合适符组成,常见的格式符有:d(整数型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如%12f。size可为选项,决定矩阵A中数据大小,它可以取下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、 [ M , N ] [M,N] [M,N](读取数据到M*N的矩阵中,数据按列存放)。
例子:读取记事本文件内容并存入矩阵。
5.电子表格数据的读取
最常用的电子表格文件是Excel生成的.xls文件,matlab中提供了xlsread和xlswrite函数用于.xls文件和matlab工作区之间数据的读写,具体语法格式如下:
num=xlsread(filename);
num=xlsread(filename,sheet);
num=xlsread(filename,xlRange);
num=xlsread(filename,sheet,xlRange);
num=xlsread(filename,sheet,xlRange,‘basic’);
[num,txt,raw]=xlsread( — — —— );
——=xlsread(filename,-1)
[num,txt,raw,custom]=xlsread(filename,sheet,xlRange,’’,functionHandle);
xlswite(filename,A);
xlswite(filename,A,xlRange);
xlswite(filename,A,sheet,xlRange);
status=xlswrite()
[status,message]=xlswrite()
例子::
6.声音文件的读写
matlab通过函数sound.soundsc将向量转换为音频信号,或者通过wavread、wavwrite函数语法格式如下:
7.视频文件的读写:
matlab中的视频对象称为movie.matlab可以通过aviread函数读入avi视频文件得到Matlab movie数据,并对其进行播放等操作。用户可以通过avifile函数创建avi视频,然后通过addframe函数将得到的视频帧添加到视频文件中,添加完成后通过close命令关闭avi文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值