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

现在有一个文件夹 里面有50个左右的txt文件 每个文件大概三万行 两列 第一列是字符串 第二列是浮点数字

我只需要读第二列

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

现在问题:
1 MATLAB如何遍历一个文件夹里的所有函数
2 如果按照文件名创建一个变量?

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

如下参考:

1.首先,在这里举例制作一个txtde文本文件,如下面页面的内容。

2.将文本文件放入matlab的工作路径中,方便读取操作。例如,如果我的文本文件在桌面上,我可以将matlab的工作路径更改为桌面。具体方法是点击matlab的省略号后的当前工作路径,弹出选项选择文件夹,然后选择相应的路径。

3.接下来,我们使用importdata函数来读取文件。例如,我想读取一个名为data的文本文件,我可以在命令窗口中输入:data=IMPORTDATA('data.txt')。

4.结果表明,数据是一个结构化数组。在这一点上,我们可以看看结构的每个部分代表什么。如下图所示,第一个数组表示文本文件的数量,第二个和第三个数组表示文本文件中的汉字。此时,每个人都可以根据需要引用适当的数组。

5.除了上述功能,您还可以使用tex胎面函数来读取。使用该特性时,可以使用[a,b,c,d]=tex胎面('data')来指定输出的每个部分的格式。txt','%2s%。3f%。3f%.3f”)。

文本中的第二个引号表示输出的格式。例如,%2s表示第一列的输出格式是单元格数组%。3f表示输出数字保留三位小数。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-02
比如说在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本回答被提问者采纳
第2个回答  2010-08-11
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个回答  2010-08-11
我试了一下1楼的回答。
读取某个文件夹下面的所有txt文档后,发现可以生成一个(比如叫a)结构数组。这个a的内容和1楼描述的一样。
可惜我还是不能读某个txt文档的数据。不知道具体怎么弄?

Matlab要这样批量读取txt数据!科研效率UpUp第10期
首先,通过简单的'dir'命令,你可以列出指定路径下所有.txt文件,这是批量操作的第一步:matlab files = dir('path_to_your_files\/*.txt');接下来,利用readtable函数逐一读取这些txt文件,设置必要的参数以准备数据处理:matlab data = cell(1, length(files));for i = 1:length(files)data{i} ...

Matlab批量读取一个文件夹里的txt文件并转换格式存储
path='输入文件夹路径';data1=[];data2=[];for n=1:9 name=fullfile(path,[num2str(n) '.txt']); fid=fopen(name,'r');%打开文件 fgetl(fid);%跳过第一行 s=fscanf(fid,'%x',[2 inf]).';%读取并将16进制转换为10进制整数 s=s.\/2^24.*1.2;%除以2的24次乘...

matlab 批量读txt
filename='E:\\ss';f = dir(filename);N = length(f);for i = 3:N name = f(i).name;A_tmp=importdata([filename '\\' name]);A{i-2}=A_tmp(1:(end-5),1:20);end 程序测试过,可以提取数据

matlab批量读取D盘211文件夹内的txt文件
for k=1:20 tmp=num2str(101)fileID = fopen(['D:\\211\\s', tmp(2:end), '.txt']);C = textscan(fileID,'%s'); % 读你的数据 处理 ...fclose(fileID);处理 ...end

matlab怎么批量读取txt文件
ew下有一系列txt文件,文件名符合matlab变量名的命名规则,并且没有temp.txt文件,每个文件有两列,以空格分割,第一列是字符串,第二列是浮点数字,要读取第二列的浮点数字为数组并以文件名为变量名。file=dir('E:ew\\*.txt');for n=1:length(file)temp=dlmread(['E:ew\\',file(n).name],...

Matlab 如何批量读取指定文件夹下 文件名中包含有特定后缀的文件
pt = 'd:\\tem\\'; % 文件路径,换成自己位置suf = '_n.txt'; dd = dir([pt '*' suf]); dt = [];for k = 1:length(dd) nm = [pt dd(k).name]; tem = load(nm); dt = [dt; tem(1:3)];enddisp(dt)...

matlab批量读取一个文件夹下的所有txt文件,并将这些txt文件里面的内容...
没必要用matlab批处理就可以搞定 在那个文件夹下新建一个文本文档输入:type *.txt>>all.txt 保存为.bat文件,然后运行就可以了。

怎样用matlab读取按列文本文件
Matlab 中从文件夹中批量读取文件的做法中从文件夹中批量读取文件的做法 function [read_data]=batch_read_file(file_type); % <<---文件已完成,程序已修正--->> % 可以读取的文件中,若有列数不相同的,则补 nan % 数据文件中只能是数字 % *.xls 文件只能是英文...

matlab数据批量处理
用dir函数 或者 通过ls函数自动获取当前文件夹下的所有指定类型文件 filename = ls('*.txt');file_num = size(filename,1);A = load(filename(1,:));%读入第一个txt文件 请采纳答案,支持我一下。

Matlab实现数据的批量读取与FFT处理
1. 读取文件:批量读取所有 txt 文件。2. FFT 处理:对获取的信号进行 FFT 处理。3. 数据提取:提取特定频率点的幅值信息。4. 保存数据与图片:将处理结果和图片保存到指定位置。【代码解读】第一步:读取文件。对于 txt 文件,使用 MATLAB 的 `textscan` 函数读取数据。如果数据是存于 Excel 文件...

相似回答