TA的每日心情 | 怒 2019-11-20 15:22 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
, z( o1 N; f2 U. S# T) d
在使用matlab处理数据时,常常会遇到在一个文件中有很多相同的格式的数据文件,如果一个一个读取不仅浪费时间,也会使程序显得臃肿。
- w2 m7 x' X7 R: TMonthSelection='alldata';
+ r8 C$ @6 l5 z" nstr='C:UsersRyanDocumentsMATLAB';( L' p, i" t/ ? y G/ }% m
cd([str,MonthSelection]);%待处理的数据文件所在文件夹- F4 c) V) g- S9 a
Allname=struct2cell(dir); %得到上述文件夹下的所有文件名
# V& e: L% b- ]) f[m,n]=size(Allname);%得到文件名的个数# t1 A+ w2 i& v: [" `7 l: V" K5 j
str1=[str,'result'];
5 @$ U H0 t6 _; X8 ~5 T) vmkdir(str1)%开辟新文件/ M8 r' ^+ |) q0 ?/ j- h& j
使用上述方法一定要记住文件个数为n-2个,即文件从3:n.下面就可以利用循环对数据文件进行处理了。1 Z7 J- D W& D2 ]7 Z+ u
例:读取文本批文件的格式6 c9 s, u4 O% I+ S9 g
MonthSelection='alldata';8 P1 ]9 {# V* y* L) L
str='C:UsersRyanDocumentsMATLAB';
6 g- J1 h* ~' ^: ^# N6 Ucd([str,MonthSelection]);%待处理的数据文件所在文件夹
; S& K! n: M: b* BAllname=struct2cell(dir); %得到上述文件夹下的所有文件名: z" k$ O2 u8 T
[m,n]=size(Allname);%得到文件名的个数
& ], D& \0 Z! r+ C5 Wstr1=[str,'result'];%%%%; M' C: A' i: x) B. |- ~
mkdir(str1)%开辟新文件%%%3 M; X/ s% |0 n' m7 L
for i=3:n
. `: m( V: D5 u: @% GAllname{1,i};%第i个文件的全名
/ K: C# I, F" ?2 J Ccd1=[cd,'',Allname{1,i}];%第i个文件地址
& V! t5 c; f* s! Tfid=fopen(cd1,'rt');%open file for reading data
! x; u$ m* r1 B" I- B" \2 Y/ m5 X6 Oif (fid==-1)
, r$ W7 \3 e! |( \3 W9 P display('No File was selected!');$ Q6 \5 D' `/ i u* N
return;
+ c2 p% r( c5 ]$ Y! S% Cend1 {3 z8 n# a( x8 i+ B0 n
A=textscan(fid,读取格式);
& P/ o& V% L! F# l0 ~: j: G....
3 }( P# D6 j9 D% }end
$ }: _ ^: `/ o$ @ |
|