TA的每日心情 | 怒 2019-11-20 15:22 |
|---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
: q+ S# _* I' S" j: g0 h( M在使用matlab处理数据时,常常会遇到在一个文件中有很多相同的格式的数据文件,如果一个一个读取不仅浪费时间,也会使程序显得臃肿。4 u! }( Z3 I3 g( H
MonthSelection='alldata';/ j, f! K2 K- j; Q$ V+ |
str='C:UsersRyanDocumentsMATLAB';1 v( C6 h. _" s5 |: v
cd([str,MonthSelection]);%待处理的数据文件所在文件夹
( D9 k% r; \* r8 Y3 f9 P nAllname=struct2cell(dir); %得到上述文件夹下的所有文件名
5 s3 P5 m6 u% E- V Z* Q8 I[m,n]=size(Allname);%得到文件名的个数" o5 d; ?6 h/ V) a
str1=[str,'result'];
# ]( p1 b" }3 S9 w* ?; h8 U: y. amkdir(str1)%开辟新文件2 z1 v6 m, s" b/ q2 r/ ~
使用上述方法一定要记住文件个数为n-2个,即文件从3:n.下面就可以利用循环对数据文件进行处理了。: r. _* z; C+ V! w% }
例:读取文本批文件的格式
e, A S8 K" P4 y b; xMonthSelection='alldata';
+ U$ j, q# L* N9 ostr='C:UsersRyanDocumentsMATLAB';
! ^0 V9 \' N0 g+ y7 Qcd([str,MonthSelection]);%待处理的数据文件所在文件夹+ i n" S4 G" A3 q6 p* Y9 E
Allname=struct2cell(dir); %得到上述文件夹下的所有文件名
& h5 L6 k: V5 m; @, q( w9 W[m,n]=size(Allname);%得到文件名的个数
4 ~6 g( y* ^4 \8 rstr1=[str,'result'];%%%%
5 K$ j+ I- D+ U% J9 wmkdir(str1)%开辟新文件%%%
* g# R! P7 u1 W5 E. }1 @) hfor i=3:n
# ?0 V1 S) K) S4 }, H! yAllname{1,i};%第i个文件的全名% K: t% b3 Y. C, f& n# Y
cd1=[cd,'',Allname{1,i}];%第i个文件地址" o5 ?5 f* O% g: e# }" B
fid=fopen(cd1,'rt');%open file for reading data
% q U# u; H) o3 \: F0 aif (fid==-1)
/ a L+ a' K6 \/ }& n display('No File was selected!');) b( C( \/ P1 v; P6 q
return;
7 u8 T2 ?0 t2 b8 v. P- wend
) b& @4 N3 \* G0 t9 @! R& e- ~: y* l& v( ZA=textscan(fid,读取格式);
1 z& F. u0 b; n8 J2 n....
( ]8 x0 N' ]9 qend2 O: F: R6 ?( o
|
|