[已答复] 如何批量导入txt文件并处理

[复制链接]
progressday 发表于 2013-8-19 13:59:11
   麻烦高手指点一下,一个data文件夹里面有36个txt文件从1到36.txt,需要批量导入matlab工作空间,然后将每个txt文件里提取(1:end-5,1:20)矩阵,然后再保存,怎么代码实现啊?

5 条回复


jiangxuzhen 发表于 2013-8-19 21:57:11
刚刚给人解答完这个问题,代码还没有删除,现在发给你吧

jiangxuzhen 发表于 2013-8-19 21:58:26
clear all
clc

%<=============================数据批量导入===============================>%

RootPath = uigetdir;                   %选择任务路径,不可选到式样编号文件夹
% FileFolder = fullfile(RootPath);       %选到式样编号文件夹的上一级文件夹即可
DirOutput = dir(fullfile(RootPath));           %读取式样编号文件名,dir
SimpleName = {DirOutput(3:end).name}';           %函数读出的结果为结构数组,
LenSimFile = length(SimpleName);                                                 %把读到的文件名存为元胞数组
                                                
%自动批量导入数据  


for i = 1 : LenSimFile
    ReadPath(i) = {[RootPath,'\',SimpleName{i}]};
    TxtData = importdata([RootPath,'\',SimpleName{i}]);
    %读取数据
    [DealData{i}] = smoothdata(TxtData);                        
end

%选择路径创建相关文件夹及文件

ProtectPath = uigetdir('请选择保存路径');
ProtectPath = [ProtectPath,'\','处理后的数据','\'];
for i = 1 : LenSimFile
        mkdir(ProtectPath);
        ID = fopen(strcat(ProtectPath,'\',SimpleName{i}),'w+');
        fprintf(ID,'%.6f\t%.6f\r\n',DealData{i});
        fclose(ID);
end


% 说明:1.数据的存放方式为:文件夹\*.txt数据文件,使用是只要选择文件夹即可
%      2.数据去噪的处理方法是按第一列升序排列后,按
%      data(i,:) = (data(i-3,:)+data(i-2,:)+data(i-1,:)+data(i,:)...
%      +data(i+1,:)+data(i+2,:)+data(i+3,:))/7;方式平滑化处理

jiangxuzhen 发表于 2013-8-19 22:02:07
数据处理的函数
function  DealData = smoothdata(data)
DealData = data(1:end-5,1:20);
end


刘人杰2013 发表于 2013-8-20 08:34:54
jiangxuzhen 发表于 2013-8-19 21:58
clear all
clc

不管怎样先顶了,待会儿试试你得方法。

junmabch 发表于 2013-10-19 15:27:07
赞一个,顶……………………
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表