又是一个新的小项目的整理(本文主要是Matlab 文件读取)

很奇怪,总是忘记更C#,主要平时还是用Matlab的比较多

这次又更新了一个项目,这个小项目主要设计到一些数据的整理,数据(尤其是excel)的奇怪的读取方式,最主要的是时间的处理,以及又设计了个Matlab app、大概就是这么奇怪的东西的融合。

数据的读取和处理

本次主要涉及到的数据读取,一个是读取整个文件夹下面的数据,一个是读取文件夹下面的子文件夹中的数据。而读取的类型主要涉及到的有excel,txt,和csv。

Matlab读取文件夹下面的文件

这种就是打开就是文件,可能会有别的后缀啊啥的

Dir  = dir(filepath);             % 遍历所有文件
k = 0;
for i = 1:length(Dir)
    if(isequal(Dir(i).name,'.')||isequal(Dir(i).name,'..'))     % 去除遍历是隐藏文件夹的
           continue;
    end
    k = k+1;
    file_name{k} = [filepath '\' Dir(i).name]; 
end

这个就是遍历所有文件的实现代码,这样只能读取所有的文件,需要注意的是,因为系统有两个隐藏文件夹,所以专门设计了新的k参数用于标记这个文件的位置

file=dir(fullfile(filepath,'*.mat'));  %用于识别某种特定后缀的文件
k = 0;
for i = 1:length(file)
    if(isequal(file(i).name,'.')||isequal(file(i).name,'..'))     % 去除遍历是隐藏文件夹的
           continue;
    end
    k = k+1;
    file_name{k} = [filepath '\' file(i).name]; 
end

Matlab读取文件夹下面的子文件夹

这种就是打开的是文件夹下面的子文件夹,然后需要读取的是子文件夹下面的数据

kjzxDir  = dir(kjzxPath);             % 遍历所有文件
k = 0;
for i = 1:length(kjzxDir)
    if(isequal(kjzxDir(i).name,'.')||isequal(kjzxDir(i).name,'..')||...% 去除系统自带的两个隐文件夹
       ~kjzxDir(i).isdir)     % 去除遍历中不是文件夹的
           continue;
    end
    k = k+1;
    imgDir = dir([kjzxPath '\' kjzxDir(i).name '/*.txt']); 
    
    for j =1:length(imgDir)                 % 遍历所有文件
        if imgDir(j).name(4)=='p' && imgDir(j).name(8)=='s'   %仅读取风速
            data_temp_u = importdata([kjzxPath '\' kjzxDir(i).name '\' imgDir(j).name]);%不能直接放入cell中,先改写
            
            position_temp = regexp(imgDir(j).name, '_', 'split');%读取时间,这个也是非UTC格式
            
        elseif imgDir(j).name(4)=='p' && imgDir(j).name(8)=='v' && imgDir(j).name(9)=='e'   %仅读取风向
                data_temp_v = importdata([kjzxPath '\' kjzxDir(i).name '\' imgDir(j).name]);%不能直接放入cell中,先改写
        end
    end

    data_vel{k} = [data_temp_u.data];
    data_dir{k} = [data_temp_v.data];
end

这个就是需要遍历文件夹下面的子文件夹并读取其中的数据,最大的不同是需要屏蔽掉文件夹下面的非文件夹内容,所以判定语句不同

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值