方法一:(已验证)
1、首先通过dir获取目标目录下所有txt文件的文件名,存放于namelist数组中。
2、构建元胞数组存放文件名
3、构建元胞数组存放点。
function [ len,var ] = reading_txt()
%UNTITLED2 读取txt文件
% 返回值len为.txt的个数
% 返回值var为元胞数组,其中的1到len个存放一个.txt
% 记得要修改txt所在路径
namelist = dir('E:\实验\MATLAB\直方图显示\*.txt');
% 读取后namelist 的格式为
len = length(namelist);
file_name=cell(1,len+1); %用zeros(矩阵)/cell(元胞数组)函数,指定数据类型,减少变量长度不确定随着迭代次数变化而过多消耗时间
var=cell(1,len);
for i=1:len
file_name{i}=namelist(i).name; %大括号{},用于cell型的数组的分配或引用。
var{i}=load(file_name{i}); %小括号(),用于引用数组的元素。
end %中括号[],用来构建向量(Vectors)或者是矩阵(Matrices)。如[6.9 9.64 sqrt(-1)] 就是一个有三个元素的向量。[11 12 13; 21 22 23] 是一个二乘三的矩阵.
end
方法二:转载自:https://blog.csdn.net/sinat_20177327/article/details/52104275?locationNum=9
我用的是MATLAB R2016b,跟原作者不的界面不太一样
因实验需要,需将几百个文件一次批处理读入matlab然后进行文件的加载(loadoff)。从社区参考各类大牛matlab批处理经验,最终轻松实现,过程很简单,写一篇小文来总结一下,也可供大家参考。
1、 将所需处理的文件(各种格式)文件名复制进Excel表格,以列形式存放。一般需批处理的文件应该是文件格式相同,文件名相似。如下图:
这一步也可以通过新建bat工具批获取文件名到.txt,再导入Excel
2、 将表格保存,命名为template_name.xlsx,放在原始文件所在的文件夹下。
3、 打开matlab,工作路径切换至当前文件所在目录。选择file import data(我用的中文版,“主页”——“导入数据”),弹出选项框,选择存储文件名的文件template_name.xlsx,点击打开,弹出如下图对话框,将import as(导入的数据)选择为cell array(元胞数组),range(范围)要将一列数据全选,然后点击import(导入所选内容)进行导入。
4、 此时在matlab界面workspace中出现如图一个cell类型的数组,打开便是所需批处理的文件名称,可将其重新命名。
5、 此时批处理文件数据名称已导入,将所需批处理的文件全部放入matlab当前工作目录,也就是template_name.xlsx所在的目录。
6、 创建元胞数组shape=cell(1,49),利用循环加载文件,只需引用文件名称便可读入文件。【这一步暂时没找到合适的函数,下面的代码运行不成功】
for ii=1:49
Shape{ii} = Loadoff('LISTNAME{ii}');
end
这样就将49个文件通过文件名loadoff进shape{}中,每一个文件保存为struct形式,省去了每个文件的loadoff过程。可根据需要把加载进去的文件保存为.mat,至此完成。