MATLAB数据处理读取csv文件,批量命名,文件自然顺序读取

MATLAB进行数据分析及处理,常常会需要访问各种文件,以及批量处理。下面总结一下常用的数据处理函数及方式。1,读取当前文件夹下所有csv文件,并将每个文件中的特定数据组成一个矩阵,并组合。file=dir('KH\*.csv'); %读取KH文件夹下全部csv文档[~, ind] = sort([file(:).datenum], 'ascend'); %读物的文件按照时间顺序...
摘要由CSDN通过智能技术生成

MATLAB进行数据分析及处理,常常会需要访问各种文件,以及批量处理。下面总结一下常用的数据处理函数及方式。

1,读取当前文件夹下所有csv文件,并将每个文件中的特定数据组成一个矩阵,并组合。

file=dir('KH\*.csv'); 
 %读取KH文件夹下全部csv文档
[~, ind] = sort([file(:).datenum], 'ascend');
 %读物的文件按照时间顺序排列
filenew = file(ind);
%更新文件夹顺序
filename={filenew.name}';
Fold = {filenew.folder}';
fileall = strcat(Fold,'\',filename);
 %将文件路径组合

将文件夹中的每个cvs文件取出特定数据,组成矩阵

Num = length(fileall);
for i = 1:Num 
fid = fopen(fileall{i});
cellc = textscan(fid,'%f %f %f %f %s %f %s %f %f %f %f %f %f %f %s %*[^\n]','HeaderLines',6,'Delimiter',',');  
%采用textscan的方式读取每个csv文件的内容。
fclose(fid);
dataall = cell2mat(cellc(1,8:14));%获取有用的数据
end

2,批量将某一文件夹下mat文件重新命名并放置在特定文件夹下。此目的可以分为两个步骤:a,对mat文件批量命名,一般采样eval函数(matlab中尽量避免此函数,不方便调试效率也较低)。b,批量保存文件。

DOCman = "newdata";
saldir = 'F:\data_source\';
Newdir = mkdir(saldir,DOCman); %根据需求创建文件夹
Num = length(data);

for i = 1:Num
  var_data = ['data_',num2str(i)];
  savePath =strcat(saldir,DOCman,'\','data_',num2str(i), '.mat');%确定保存路径及保存文件方式
  eval(['data_',num2str(i),'=','data',';']);  %用eval批量命名
  save(savePath,var_data); 
end

3,批量读取文件夹下所有文件,并将文件按顺序排序,windows系统下可以自动按照1,2,3...10,11...顺序排序文件 ,matlab批量读取的时候并不一定按照这种方式,所以需要自己处理,matlab自带sort函数可以进行排序,但是效果不佳。可以编辑下列m文件。

function [X,ndx,dbg] = natsort(X,rgx,varargin)
% Alphanumeric / Natural-Order sort the strings in a cell array of strings (1xN char).
%
% (c) 2012-2019 Stephen Cobeldick
%
% Alphanumeric sort a cell array of strings: sorts by character order and
% also by the values of any number substrings. Default: match all integer
% number substrings and perform a case-insensitive ascending sort.
%
%%% Example:
% >> X = {'x2', 'x10', 'x1'};
% >> sort(X)
% ans =   'x1'  'x10'  'x2'
% >> natsort(X)
% ans =   'x1'  'x2'  'x10'
%
%%% Syntax:
%  Y = natsort(X)
%  Y = natsort(X,rgx)
%  Y = natsort(X,rgx,<options>)
% [Y,ndx,dbg] = natsort(X,...)
%
% To sort filenames or filepaths use NATSORTFILES (FEX 47434).
% To sort the rows of a cell array of strings use NATSORTROWS (FEX 47433).
%
%% Number Substrings %%
%
% By default consecutive digit characters are interpreted as an integer.
% Specifying the optional regular expression pattern allows the numbers to
% include a +/- sign, decimal digits, exponent E-notation, quantifiers,
% or look-around matching. For information on defining regular expressions:
% http://www.mathworks.com/help/matlab/matlab_prog/regular-expressions.html
%
% The number substrings are parsed by SSCANF into numeric values, using
% either the *default format '%f' or the user-supplied format specifier.
%
% This table shows examples of regular expression patterns for some common
% notations and ways of writing numbers, with suitable SSCANF formats:
%
% Regular       | Number Substring | Number Substring              | SSCANF
% Expression:   | Match Examples:  | Match Description:            | Format Specifier:
% =====
  • 0
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值