工科生利用matlab读取实验数据应该是一个必备技能了,最常见的做法就是直接用load命令加载对应的文件,但是使用load命令是非常不方便的,原因有二:
一、load命令只能读取数据规格相同的文件,但是实验数据前面往往有一些文字描述,读取会发生错误,要想读取数据就要先手动删除这些文字描述再读取,这是很不方便的。如下图,(前23行是本次数据的相关字符信息)
二、当读取文件数量较多时,load命令不能设置自动读取所有文件,需要手动输入每个文件名,效率较低。如下图所示,
以上图文件为例,为了提高数据分析效率,直接用fopen来打开所有文件,可从指定行开始读取数据、自动读取所有文件并保存为.mat文件。main文件代码如下:
clc
clear
Files=dir('20201109/*.lvm'); %读取目录下所有文件的信息
for ii=1:length(Files)
filename=[Files(ii,1).folder, '\', Files(ii,1).name]; %文件的路径
fid=fopen(filename,'r'); %打开文件
t=textscan(fid,'%s %s %s %s','headerlines',23); %跳过前23行,从第24行开始读取数据,并保存为字符串格式
fclose(fid); %关闭文件
time = str2num(char(t{1,1})); %将字符格式转换为数字格式
Fx = str2num(char(t{1,2}));
Fy = str2num(char(t{1,3}));
Fz = str2num(char(t{1,4}));
mat_name=strsplit(Files(ii,1).name,'.'); %将文件名的字符串拆分开
name = strcat('cutting_force','_',mat_name{1,1}); %重组切削力数据文件名
save(name,'time','Fx','Fy','Fz'); %保存切削力数据为.mat文件
end
运行后,会自动生成t2_1.mat~t2_5.mat几个文件,如下图所示:
每个文件中都保存着读取的time、Fx、Fy、Fz数据,如下:
同时,工作区可以看到打开最后一个文件(即t2_5.lvm)后的变量值,如下:
其中,
Files的值为:
filename的值为:’F:\插铣资料\工艺参数优化程序\test\20201109\t2_5.lvm’;
mat_name的值为:‘t2_5’和’lvm’;
版权声明:本文为weixin_49199646原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。