TA的每日心情 | 怒 2019-11-20 15:22 |
|---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
; J* m1 |2 ]+ R+ s0 M/ Q1 a" p在使用matlab处理数据时,常常会遇到在一个文件中有很多相同的格式的数据文件,如果一个一个读取不仅浪费时间,也会使程序显得臃肿。- u5 s) l, R2 |4 A
MonthSelection='alldata';
, G, @- W' G! Qstr='C:UsersRyanDocumentsMATLAB';
% W# _) \3 G% g6 ~3 n& C; `* _cd([str,MonthSelection]);%待处理的数据文件所在文件夹. S. K% X7 d( F5 @3 J7 s3 b4 q+ C/ u
Allname=struct2cell(dir); %得到上述文件夹下的所有文件名
; C/ E1 e* u' g: _$ T/ M4 l[m,n]=size(Allname);%得到文件名的个数 n, @* Q+ ^2 [5 M* Y% l' m
str1=[str,'result'];% I5 [# y! a8 u
mkdir(str1)%开辟新文件# c! n) |% D$ j# |/ f
使用上述方法一定要记住文件个数为n-2个,即文件从3:n.下面就可以利用循环对数据文件进行处理了。2 W" M, U, T* Q, v. j. {0 g! |9 Z
例:读取文本批文件的格式2 `, l! d& S u% c3 q: L
MonthSelection='alldata';
+ X# Y0 W3 A6 W( Sstr='C:UsersRyanDocumentsMATLAB';7 T# e x% ^ p5 N
cd([str,MonthSelection]);%待处理的数据文件所在文件夹
0 T" V. t( L% w0 W K/ d+ f. UAllname=struct2cell(dir); %得到上述文件夹下的所有文件名- P' ]( F$ X7 P
[m,n]=size(Allname);%得到文件名的个数
. c( Q% q& C5 D Istr1=[str,'result'];%%%%
/ S0 O; j3 y3 r: s. vmkdir(str1)%开辟新文件%%%
9 b& O* J8 V( l. c2 W: z% T& rfor i=3:n, Z0 D! G0 s1 ]8 U7 N
Allname{1,i};%第i个文件的全名, A" ]+ F+ l- b" Y. O' [
cd1=[cd,'',Allname{1,i}];%第i个文件地址
& U+ \# ?& \) ffid=fopen(cd1,'rt');%open file for reading data* y) T! e/ E( j& b2 S5 x
if (fid==-1)
. ?% _2 p# ^/ k$ k, ~: \( q5 y ^; v display('No File was selected!');% ]7 u: y; \6 [% K% g
return;' x$ ^% K# U: n# P/ u
end
6 q4 z9 Q1 _# X1 C7 x) y. C! PA=textscan(fid,读取格式);+ s) K! Y' G5 Y% T' y" w2 d
....' S/ o, O8 v7 A
end
, e3 ]- f$ ~9 M3 {6 z1 Z |
|