matlab批处理,读取文件#Matlab
说下背景,师姐扔给我一堆数据,让我以科学进制的方式整理到word中。

每个文件的数据是这个样子的。

之前师姐是一个个手敲进去的,那我可受不了~~~
按照道理说,直接复制到xls中,但是复制只能放在一个单元格中,没有进行处理,然后再转复制到word中。
好吧,那就读进matlab中,然后再写入xls中。
但是,难道真的让我一个个文件的load,然后写入xls,每次写入xls的时候还要变化写入文件的文件名。
这么多数据,DOS啥的可以批处理,难道matlab不行吗?
我先将属于同一类的数据放在对应的文件夹中。

查了下手册和百度
List = dir();
[Row Colunm] = size(List);
FileNameStore = cell(Row,1);
FileNameStoreIndex=1;
for ii=1:1:Row
if(List(ii).isdir == 1)
if(List(ii).name(1,1) ~= '.')
FileNameStore(FileNameStoreIndex,1) = cellstr(List(ii).name);
FileNameStoreIndex =FileNameStoreIndex+1;
end
end
end
FileNameStore(FileNameStoreIndex:Row)=[];
使用dir读取所有文件,然后判断下文件的属性,将不是文件夹的家伙踢出去~~~
知道了文件夹,然后把name转换为字符串类型,然后读取这个文件夹中的文件,load,然后写入xls
[Row Colunm] = size(FileNameStore);
for ii=1:1:Row
PathName = ['./' char(FileNameStore(ii)) './*.dat'];%%choose the data file in the Folder
ListInFile = dir(PathName);
[RowInFile ColunmInFile] = size(ListInFile);
XLSName = ['./' char(FileNameStore(ii)) './' char(FileNameStore(ii)) '.xls'];
Place = 'B2';
for jj=1:1:RowInFile
DataFilePath = ['./' char(FileNameStore(ii)) './' char(ListInFile(jj).name)];
DataFromFile = load(DataFilePath);
xlswrite(XLSName,DataFromFile,char(ListInFile(jj).name),Place);
end
end
OK了,所有的子文件夹中都有了对应的xls了。
把所有的xls的数据都处理成科学进制(保留3位小数点)的形式,
然后复制到word中。
虽然还有些东西可以自动化,但是已经进步了一点,mark一下
浙公网安备 33010602011771号