TA的每日心情  | 怒 2019-11-20 15:22 | 
|---|
 
  签到天数: 2 天 [LV.1]初来乍到  
 | 
	
    
 
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册  
 
x
 
 
  N- C) m# v$ l3 @1 l# v* C在使用matlab处理数据时,常常会遇到在一个文件中有很多相同的格式的数据文件,如果一个一个读取不仅浪费时间,也会使程序显得臃肿。1 [; a( `2 Q9 ?6 d3 t  y, f2 s+ i 
MonthSelection='alldata';  Q/ G  g- M% h+ L# b 
str='C:UsersRyanDocumentsMATLAB'; 
2 I) I3 Z! ~/ S( C' m2 C4 G5 M8 x5 s0 ocd([str,MonthSelection]);%待处理的数据文件所在文件夹 
, d/ j" a) z! `3 p8 }" eAllname=struct2cell(dir); %得到上述文件夹下的所有文件名 
: P: Z' B0 Q8 P8 F0 t[m,n]=size(Allname);%得到文件名的个数 
3 ^; l' {5 ]/ p3 n; _# hstr1=[str,'result'];/ b+ W' n. t2 g 
mkdir(str1)%开辟新文件; E" l9 |1 K. u( a- L' ` 
使用上述方法一定要记住文件个数为n-2个,即文件从3:n.下面就可以利用循环对数据文件进行处理了。5 ]4 e5 g, _8 w# B; e, B* |, _# k 
例:读取文本批文件的格式( S) w4 C- Y5 T 
MonthSelection='alldata';% C! S( E# V& K5 z  ? 
str='C:UsersRyanDocumentsMATLAB'; 
* s3 x' q. q# Z; {* R+ _cd([str,MonthSelection]);%待处理的数据文件所在文件夹, c9 q) ^/ T* h$ N2 ?$ g; a 
Allname=struct2cell(dir); %得到上述文件夹下的所有文件名" T' Z& s% \" a! ]4 S: ?( S% N3 K5 ` 
[m,n]=size(Allname);%得到文件名的个数 
3 y3 ~  ]: o! k' D: K5 P5 a, M* F! Cstr1=[str,'result'];%%%% 
3 D5 ]3 V: m- }2 T2 o- V/ w5 ]mkdir(str1)%开辟新文件%%% 
2 m) T$ d2 r9 @5 p' ^for i=3:n 
& Y" [6 M2 l2 J2 |Allname{1,i};%第i个文件的全名# u5 B3 G8 O* k0 p  d. O 
cd1=[cd,'',Allname{1,i}];%第i个文件地址1 E5 j8 N! r* P7 b 
fid=fopen(cd1,'rt');%open file for reading data- z, h* K2 j$ c9 Y' l! Z 
if (fid==-1) 
4 P! w! P# |) M' A0 C# t      display('No File was selected!');3 [: K5 y2 z  b" j) F7 r/ N% n8 V 
      return;: z% }( r" W* Q 
end- c0 b* C$ O. w+ i& t: T 
A=textscan(fid,读取格式);' r" s2 W( x+ G 
....+ A: I+ d/ N5 ]- r 
end 
5 q' r+ `# X2 U* _2 G0 t5 g |   
 
 
 
 |