MATLAB读取文件夹中的所有文件并按照一定的格式读取txt文件写入新的文件
最近需要写一个matlab对txt和的循环,之前每次写这类似的程序,都需要在各个网站上查找半天。我觉得这样比较费时间,这次就一把可能用到的函数和程序都放到这里,已被日后需要时拿来查验,也希望能对各位看官有所帮助和借鉴。
这里想要用matlab实现的三个功能分别是,1. 循环读取一个文件夹下的所有文件。2.按照一定的格式读取txt中的文件,并赋值给一个变量。3.将一组数据以一定的格式保存到某个txt文件中去。
1.循环读取一个文件夹下的所有文件
如果我们想知道某个文件夹下的所有文件,我们会用到 dir这个函数。
path = '.\heat_map\'; %想要查看的文件夹的路径
file = dir(path); %构建了一个结构体,file,里面存放了该文件夹下的所有信息
len = size(file, 1); % 判断文件夹下文件的数量。
需要注意的是len中的文件夹数量比实际的数量要多2个,也就是真正的文件夹中的内容是从3开始的。
for i =3:1:len
file(i).name
end
就可以将该文件夹下的所有文件名读取并打印出来了。
2.按照一定的格式读取txt中的文件,并赋值给一个变量
现在是如何按照一定的顺序去读取txt中的数据呢?我存在txt中的数据格式是‘***,***,***,***’这样的,我想将其一共分成四列,分别存放在不同的变量中,并以逗号分开。
name_all = [path,se_name,'\response_max_min.txt']; %首先告诉计算机txt文件的路径和文件名
[a1,a2,a3,a4] = textread(name_all,'%f%f%f%f','delimiter', ','); % 将其中的每一列的数据分别赋值给a1,a2,a3,a4
其中a1,a2,a3,a4分别存储了txt中的每一列的数,size(a1,1) 则说明了数据的长度。
3.将一组数据以一定的格式保存到某个txt文件中去
最后,我们想将一个数据保存到一个txt文件中去,比如我们的数据是[1,2,3,4],则我们需要执行的代码如下:
path_wr = [path,se_name,'\evluate_response.txt']; %要保存到的txt文件的名称和路径
fp = fopen(path_wr,'a');% 我们以累加的形式打开这个txt文件
fprintf(fp,'%f,%f,%f,%f\n', a(1), a(2), a(3), a(4));%将这个数据保存到该txt文件
fclose(fp); %关闭这个txt文件
这样就完成了,以上所有需要的操作,希望对看官有所帮助,也是给自己一个备忘。