在用matlab处理数据时中,经常要用到ascii文件,在此贴出一段代码,该代码从work中自动读取ascii文件
并去掉非数值的headline,在将其转化为数值矩阵,求得第五列的平均值。本代码中,headline的字符数为
79,可以通过观察字符文件得到,因此从第80个字符往后都是数值数据,希望对大家有所帮助(未经本人允许,不得转载!)
%%%%%根据ASCII数据文件求平均温度值%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear %清空workspace
fid=fopen('test1','rt'); %打开二进制文件test1(第一行为headline,非数值)
test1_char=fread(fid);%读入已打开的test1
data_char=char(test1_char');%并将其转化为字符型
data_char_size=size(data_char);%获得字符型数据的长度
data_char_temp=data_char(80:data_char_size(2));%截去非数值的headline字符
data_num_temp=str2num(data_char_temp);%将截去headline的字符转化为数值型变量
fclose(fid);%关闭二进制文件test1
data_num_temp_rows=size(data_num_temp);%获得数值型变量的“尺寸”
average_temp=sum(data_num_temp(:,5))/data_num_temp_rows(1)%求得需要的平均数值
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%---over----%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%