Matlab批量读取一个文件夹里的文件

Matlab批量读取一个文件夹里的文件

Matlab批量读取一个文件夹里的txt文件

浏览次数:1101次 悬赏分:10 | 解决时间:2010-8-11 22:26 | 提问者:cloned | 检举
现在有一个文件夹 里面有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.

有兴趣的话可以探讨一下. 

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值