思路为:用dir找到文件路径,将文件名保存到Name中,通过循环分别用fopen打开文件后为cell,将cell变为矩阵后进行数据处理,最后得出对应的图片,按序号命名后分别保存。
其中遇到的问题就是上一个循环留下的数据会影响cell2mat,所以要清楚部分变量
clc;close all;clear all;format long;
Name=dir('D:\2022\07\*.txt');
dircell=struct2cell(Name)';
filenames=dircell(:,1);
for num=1:29 %共29个文件需要读
file=fopen(cell2mat(filenames(num,1)));%打开对应的文件
origndata=textscan(file,'%f %f %f %f %f %f %f','Headerlines',50); %这里跟自己的txt文件对应
fclose(file);
for i=1:1:7
data(:,i)=cell2mat(origndata(i)); %将cell转换为矩阵
end
%数据进行小波变换
for i=1:7
[thr,sorh,deepapp,crit]=ddencmp('den','wp',data(:,i));
[x1(:,i),~,~,~]=wpdencmp(data(:,i),sorh,7,'sym6',crit,thr,deepapp); %处理后的数据x1
end
time=****;%这里自己填,为x轴数据
A=figure(num);
subplot(121)
plot(time,data,'b');
subplot(122)
plot(time,x1,'k');
%保存指定图片到指定位置
path="D:\20220713\2022";
% 用stracat函数生成 “path”+“自动编号的图片名”+“文件格式后缀”
str(num)=strcat(path,'jpg',num2str(num),'.jpg');
saveas(A,str(num));
clearvars -except Name dircell filenames num %需要把多余的变量删去不然会影响下一个循环
end
版权声明:本文为weixin_42936111原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。