MATLAB自动读取文件夹中的所有文件,并处理文件内容

%%读取示波器文件中的数据,并记录其峰值%%
clc;
clear all;
%获取文件夹下某类型数据的所有文件名
Path = 'E:\单光子\';                   % 设置数据存放的文件夹路径
File = dir(fullfile(Path,'*.csv'));  % 显示文件夹下所有符合后缀名为.csv文件的完整信息
FileNames = {File.name}';            % 提取符合后缀名为.csv的所有文件的文件名,转换为n行1列
%读取特定格式的所有数据
Length_Names = size(FileNames,1);    % 获取所提取数据文件的个数
for k = 1 : Length_Names    % 连接路径和文件名得到完整的文件路径
    K_Trace = strcat(Path, FileNames(k));    % 读取数据
    eval(['Data',num2str(k),'=','readmatrix(K_Trace{1,1})',';']);
    % 注意1:eval()函数是括号内的内容按照命令行执行,
    %       即eval(['a','=''2','+','3',';'])实质为a = 2 + 3;
    % 注意2:由于K_Trace是元胞数组格式,需要加{1,1}才能得到字符串
    data = eval(['Data',num2str(k)]);
    [m,n]=max(data);
    %%记录结果,将数据保存到txt文件中
    fid = fopen('fengzhi.txt','a'); %结果记录.txt是存储数据的文件,a是数据向后增加的意思
    fprintf(fid,'%f\t',m); %  %f\t是将数据往同一行的后面存
    fprintf(fid,'%f\n',n); %  %f\n是将数据往下一行存
    fclose(fid);
    eval(['clearvars',' ','Data',num2str(k),';']);%清空指定变量
end

1.实现matlab自动读取某文件夹内的所有同类型文件;

2.实现处理读取到的文件内容,本文实现找出文件中数据最大值以及最大值的位置;

3.实现将找出的数据最大值以及最大值的位置自动写入txt文件中,本文是存放在fengzhi.txt文件中;

4.因我需要读取的文件数量相当大,为了减少占用的内存,每个读取循环完成后,我将'Data',num2str(k)变量数据清空。如果不清空的话,运行结束后工作区会记录下Data1、Data2、Data3....Dataxxx,会导致运行起来更慢。

5.eval()函数真好用。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值