您的位置:首页 > 编程语言 > MATLAB

文件基本操作(matlab)

2017-05-04 23:00 211 查看
(1) 文件的打开和关闭

打开文件格式:[fid,errmsg] = fopen(filename,permission)

参数说明: fid存储文件句柄值,大于0则说明文件打开成功;

errmsg: 打开文件不成功返回的错误信息;

filename: 文件名;

permission: 文件打开方式(r, w, a, r+, w+, a+)

关闭文件格式:fclose('fid') 或者fclose('all')

(2)  文本文件的读写

读文本文件格式:[A, count] = fscanf(fid,format,size)

参数说明:A用于存放读取的数据,count返回读取数据的元素个数,fid为文件句柄,

format用于控制读取的数据格式,size为可选项,决定矩阵A的排列方式,

比如:N(读取N个元素到一个列向量),inf(读取整个文件),[M,N](读数据到M,N的矩阵中,按列存放

写文本文件格式:fprintf(fid,format,A);

对于常用的数据处理格式即a[m]
, m代表时间序列长度,n代表道数,举个例子说明一下,一个采样128,道数10的数据格式为seis[128][10];

由于不同语言如c(按行优先存储,先存11,21,31,m1,12,22...)和matlab(按列优先存储,先存11,12,13,14,1n,21,22,...)写文件的方式不同,经常

碰到数据文件的不同读取方式,

      matlab直接的存储方式为:

第一种形如这样的数据格式,读取和写较为直接。





第二种形如这样的数据文件





至于保存为那种样式并不重要,会读会写,不混就行。

(3)二进制文件的读写

二进制文件的读:[a,count] = fread(fid,size,precision,skip)

参数说明:a用于存放数据,count返回所读取的数据元素个数,fid为文件句柄,size用于指定读入数据的元素数量,取值与fscanf函数相同,省略代表读取整个文件内容;

skip称作循环因子,可以周期性地跳过一些数据,使得读取数据具有选择性,但用得不算多。

简单补充precision为指定读写数据类型,

char, uchar

int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,long,ulong,short,ushort;

float,float32,float64,double

二进制文件的写:count = fwrite(fid,a,precision)



(4)数据文件定位

定位格式:fseek(fid,offset,origin)

参数说明:offset表示文件位置指针相对移动的字节数,若为正整数向文件尾方向移动,负整数向文件头方向移动;

origin表示位置指针移动的参照位置:

cof或0: 文件的当前位置;

bof或-1: 文件的开始位置;

eof或1:文件的结束位置。

ftell: 查询文件指针的当前位置,格式为position = ftell(fid)

返回值为从文件头到指针当前的字节数。

feof: 用来判断当前的文件位置是否到达尾部,调用格式: status = feof(fid)

返回1表示当前文件位置指针指向末尾,否则不是;

ferror用来查询最近一次输入或输出中的出错信息,调用格式:[message,errnum] = ferror(fid)

message返回出错消息,errnum返回错误信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: