TA的每日心情 | 怒 2019-11-20 15:22 |
|---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
4 j" r6 |- w3 w4 ^: P! ^在使用matlab处理数据时,常常会遇到在一个文件中有很多相同的格式的数据文件,如果一个一个读取不仅浪费时间,也会使程序显得臃肿。+ m9 z+ D, P- T
MonthSelection='alldata';% e: t% ?' l0 k9 R v' [
str='C:UsersRyanDocumentsMATLAB';1 [9 L% c ]$ j @ _
cd([str,MonthSelection]);%待处理的数据文件所在文件夹, \3 n( v; Z: I5 v, [; P
Allname=struct2cell(dir); %得到上述文件夹下的所有文件名
9 S& \0 T0 P) V- ^[m,n]=size(Allname);%得到文件名的个数( P- G! v' u+ F! T: N6 g
str1=[str,'result'];/ ~. P. q g3 t4 l$ ^
mkdir(str1)%开辟新文件
* j9 X& d3 n' p% m, A% B3 m" J使用上述方法一定要记住文件个数为n-2个,即文件从3:n.下面就可以利用循环对数据文件进行处理了。- Q/ K) x+ B& A& C; u# `8 t% `
例:读取文本批文件的格式, } s/ U S" o2 Y" s1 u8 R
MonthSelection='alldata';8 @3 M \( }2 d. o9 P$ s/ E3 r' A: d
str='C:UsersRyanDocumentsMATLAB';
% w2 v+ Y! U2 e. h" kcd([str,MonthSelection]);%待处理的数据文件所在文件夹 c+ Q) f) z/ e
Allname=struct2cell(dir); %得到上述文件夹下的所有文件名
1 Y8 |7 N3 C3 R- k, n% N. K" K2 @' Q" r[m,n]=size(Allname);%得到文件名的个数* \ C3 E4 ^. U) A& ^
str1=[str,'result'];%%%%
) U8 k9 i# p. Emkdir(str1)%开辟新文件%%%. _9 Z3 W V9 Q! ]+ T
for i=3:n
6 F; P4 [' k5 WAllname{1,i};%第i个文件的全名. }4 } @9 I# ~5 L* ] h
cd1=[cd,'',Allname{1,i}];%第i个文件地址
8 {& |/ Q$ \) J; I; Mfid=fopen(cd1,'rt');%open file for reading data, T8 m$ w! o. g1 \
if (fid==-1)( M% [" x9 c& ]& V3 p" Q i
display('No File was selected!');
1 Y: H2 m" Z# y" _. L# [5 r return;
) e# P/ Q, x1 q/ b7 k% U dend
6 d8 E3 R; Z8 o% \" _A=textscan(fid,读取格式);% n0 T4 r5 I! T6 u, A, A
....- S8 A) W# x' h1 K q$ u( P
end
( X8 O# x& _$ K& B+ l. e |
|