matlab——连续读入多个文件技巧集合

发布时间:2014-10-23 23:23:43
来源:分享查询网

在需要读入大量文件时,人工手动将importdata函数中的文件名替换很麻烦,不符合开水的宗旨“能自动化的自动化,不能自动化的想办法自动化”,于是在网上搜集了一大把连续读入的技巧,仅供参考(每个方法开水先试试,行不行代码后面再说明)开水的想法是,有两种实现方式:一、利用上一篇《批处理——获取当前文件夹的TXT文件名和去除掉最后一个文件名》的方法,先获得文件名,再存在一个字符矩阵里,循环读入,循环操作(相当于循环执行相似的M文件)二、用dir直接获得文件夹内的TXT文件(这里有两种情况,文件名有规律和没规律的),然后再执行程序经过尝试,发现dir()函数最好用,读取当前文件夹内的文件名时,直接dir(*.txt)(按需改文件格式);需要读取其他文件夹下的文件名时,加上绝对路径即可,方便实用,居家必备之良品~~ 妈妈再也不用担心我的文件名啦~~Matlab使用dir函数获得指定文件夹下的所有子文件夹和文件,并存放在在一种为文件结构体数组中.dir函数可以有调用方式为:dir('.') 列出当前目录下所有子文件夹和文件dir('G:\Matlab') 列出指定目录下所有子文件夹和文件dir('*.m') 列出当前目录下符合正则表达式的文件夹和文件%连续读入多个有规律命名的TXT文件indata=[];  %读入文件存放变量for i=1:1:10  %读入文件数filenumber=i;strext='.txt';%读入文件后缀名filename=sprintf('%d%s',filenumber,strext);indata(i)=importdata(filename);%根据需要更该读入文件的函数end%http://www.ilovematlab.cn/thread-40247-1-1.html1)要读入的文件下的文件名称依序列的方式命名如a1b.mat, a2b.mat,...,ajb.mat,... 循环读入 filepath='';%文件夹的路径 for i=1:n %n是要读入的文件的个数 load([filepath 'a' num2str(i) 'b' '.mat']) endhttp://blog.sina.com.cn/s/blog_6d8bb5350100mo4g.html二、无规律文件名但另一位朋友给出了另一个解决的办法,无需对数据文件的文件名进行修改,就是文件名无须有规律,他的办法是:A = dir(fullfile('d:/datafile','*.txt'));http://blog.csdn.net/henhen2002/article/details/5751910可以考虑使用循环分批读取(特别是在各数据是独立的时候),或者使用稀疏矩阵来实现(对此可以参阅本版精华贴:[原创]提高matlab运行速度和节省空间的一点心得(之三))。另外,也可参考《深入浅出MATLAB 7_X混合编程》一书第一章 k = length(filename);  Data = zeros(m,n,k);  for ii = Data(:,:,ii) = yourreadstyle(filename{ii}); %yourreadstyle是对应的文件读取方式的函数 end k = length(filename); for ii = D = yourreadstyle(filename{ii}); eval([‘Data_’, num2str(ii), ‘ = D;’]); end http://wenku.baidu.com/view/14023f7b1711cc7931b71613.html

返回顶部
查看电脑版