MATLAB小知识(一)——批处理文件:打开txt

方法一:(已验证)

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,至此完成。

猜你喜欢

转载自blog.csdn.net/liukunrs/article/details/80723069
今日推荐