EDA365电子论坛网
标题:
如何使用matlab进行文件批量处理
[打印本页]
作者:
mutougeda
时间:
2020-3-13 09:24
标题:
如何使用matlab进行文件批量处理
3 p( E# G* d9 f
在使用matlab处理数据时,常常会遇到在一个文件中有很多相同的格式的数据文件,如果一个一个读取不仅浪费时间,也会使程序显得臃肿。
+ r% z: i5 ^% c( Z% }; b# M
MonthSelection='alldata';
) G# [+ s" ]6 u
str='C:UsersRyanDocumentsMATLAB';
' `& {+ d6 }! s" w
cd([str,MonthSelection]);%待处理的数据文件所在文件夹
) b3 {' l( C1 l/ ?5 `2 k
Allname=struct2cell(dir); %得到上述文件夹下的所有文件名
8 h* Y8 {5 @) s/ @. Z% a3 t: w
[m,n]=size(Allname);%得到文件名的个数
" ?' j$ o4 a- V3 \' K& q
str1=[str,'result'];
! r3 p! m0 @$ X: m! m8 z, t# k
mkdir(str1)%开辟新文件
" T6 S( Y9 Q! r
使用上述方法一定要记住文件个数为n-2个,即文件从3:n.下面就可以利用循环对数据文件进行处理了。
, Z* p, \. U, }+ G
例:读取文本批文件的格式
5 |3 ~' ?' z4 h, d4 y0 R
MonthSelection='alldata';
. X0 o, I! }6 d" `
str='C:UsersRyanDocumentsMATLAB';
; C6 `; P" T' ~6 B/ n& i3 N
cd([str,MonthSelection]);%待处理的数据文件所在文件夹
( k6 ?5 u* H6 G- d
Allname=struct2cell(dir); %得到上述文件夹下的所有文件名
( b' X0 Q/ N" f) L. G
[m,n]=size(Allname);%得到文件名的个数
+ A4 C1 ^4 q4 c9 ~. ]
str1=[str,'result'];%%%%
. \' _/ d7 b0 N
mkdir(str1)%开辟新文件%%%
1 G- ^" C% z/ J. @3 n5 o
for i=3:n
) Y- c ^8 Y; S7 |. D
Allname{1,i};%第i个文件的全名
# m$ |8 ~' B, I; o9 @
cd1=[cd,'',Allname{1,i}];%第i个文件地址
+ Y: Y) @0 H; u% P8 j
fid=fopen(cd1,'rt');%open file for reading data
! {4 d7 |1 j( \. c+ M9 F4 \) i4 b
if (fid==-1)
" @1 E3 Y8 a9 T( ~; \7 H
display('No File was selected!');
( B* s6 u7 p _5 P! P0 I
return;
# S5 p4 r- a7 b
end
( T% r6 E' s2 h, l2 n4 b
A=textscan(fid,读取格式);
0 C9 j. J+ x* B, R4 A9 A3 H- L7 P
....
1 f; N9 X5 ~5 e$ e$ v; s
end
# n/ W u2 S0 } S0 C
作者:
CCxiaom
时间:
2020-3-13 18:12
使用matlab进行文件批量处理
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2