Matlab批量读取文件夹文件

时间:2021-11-21 21:35:25
现在有一个文件夹 里面有50个左右的txt文件 每个文件大概三万行 两列 第一列是字符串 第二列是浮点数字

我只需要读第二列

现在我想写一个.M文件 批量读取这个文件夹里的txt文件 读取完以后的数组变量名就是txt的文件名

现在问题:
1 MATLAB如何遍历一个文件夹里的所有函数
2 如果按照文件名创建一个变量?
最佳答案
比如说在E:\new下有一系列txt文件,文件名符合matlab变量名的命名规则,并且没有temp.txt文件,每个文件有两列,以空格分割,第一列是字符串,第二列是浮点数字,要读取第二列的浮点数字为数组并以文件名为变量名。file=dir('E:\new\*.txt');for n=1:length(file)    temp=dlmread(['E:\new\',file(n).name],' ',0,1);    eval([file(n).name(1:end-4),'=temp;'])end

 

 

1.Matlab使用dir函数获得指定文件夹下的所有子文件夹和文件,并存放在在一种为文件结构体数组中.dir函数可以有调用方式dir('.') 列出当前目录下所有子文件夹和文件dir('G:\Matlab') 列出指定目录下所有子文件夹和文件dir('*.m') 列出当前目录下符合正则表达式的文件夹和文件得到的为结构体数组每个元素都是如下形式的结构体        name    -- filename        date    -- modification date        bytes   -- number of bytes allocated to the file        isdir   -- 1 if name is a directory and 0 if not        datenum -- modification date as a MATLAB serial date number分别为文件名,修改日期,大小,是否为目录,Matlab特定的修改日期可以提取出文件名以作读取和保存用.2.我想不到什么好方法,一般也就是使用一个统一的临时变量来读取文件数据,比如tmp,然后用一个字符串变量保存的变量名,比如str='a1'要实现a1=tmp这样的语句,可以采用如下语句str_a1=[str,'=tmp'];eval(str_a1);这样a1这个变量便出现在workspace中但是问题是你并不知道那个变量名字叫a1啊?或者说我还找不到利用字符串值对变量寻址的方法,只能使用与上述过程相反的过程将值导入到一个知道名字的变量中,如tmp.有兴趣的话可以探讨一下.