利用MATLAB将多个文件合并为一个文件
在这里,我正在共享.dat文件中的一个数据。我有16162个不同的文件。我将所有内容合并到一个文件中,并希望在matlab中读取它,需要从单个文件中提取三个参数值,并将它们按行或列排列。我可以用C sharp代码来做,但我想用matlab来做。有谁能帮我写代码吗 以下是一个示例文件数据:利用MATLAB将多个文件合并为一个文件,matlab,Matlab,在这里,我正在共享.dat文件中的一个数据。我有16162个不同的文件。我将所有内容合并到一个文件中,并希望在matlab中读取它,需要从单个文件中提取三个参数值,并将它们按行或列排列。我可以用C sharp代码来做,但我想用matlab来做。有谁能帮我写代码吗 以下是一个示例文件数据: DISTRIBUTION: monomodal log-normal n : 1.000 r_mod: .010 sigma: 1.400 number conc., surface. conc
DISTRIBUTION: monomodal log-normal
n : 1.000
r_mod: .010
sigma: 1.400
number conc., surface. conc., volume conc.
.1087E+01 .1866E-02 .7878E-05
part. ave. radius, surf. ave. radius, vol. ave. radius :
.1149E-01 .1169E-01 .1201E-01
surface mean radius, volume mean radius :
.1267E-01 .1392E-01
eff. variance :
.9939E-01
比方说:我想提取或读取三个参数(r_mod,sigma,Surface means radius)。我在本页中输入的文件中这三个参数的对应值为.010、1.400、1267E-01
输出应该是(我想要的):
我在同一个目录中有数千个类似的文件。我想在matlab中读取所有这些文件,并且输出应以这种方式显示在单个文件中。鉴于所有文件都具有完全相同的结构,以下内容将完成此工作(只需确保在代码中对注释进行扩孔,您需要调整要读取的文件名和文件数):
文件output.txt现在包含所需的行。如果您希望输出文件也是.dat,则可以更改格式。如果您在StackOverflow上询问此问题,您的运气可能会更好。统计SE在统计方法上比编程问题更强大。您希望提取哪三个参数?当您合并文件时,您只是简单地附加了单个文件吗?输出文件的格式是什么?您当然可以在MATLAB中完成,但Perl可能会更容易。您可以使用perl函数直接从MATLAB运行perl脚本。你考虑过这个选项吗?看来穆斯塔法删除了他的帐户:s你觉得这个答案足够@yuk吗?
r_mod sigma surface mean radius .01 1.4 1.27E-02 .02 1.4 2.67E-02 .03 1.4 3.98E-02 ... .. .. .. .. .. .. .. ..
n = 2; % Number of files you want to go through
vals = zeros(1,3*n);
str = 'r_mod sigma surface mean radius ';
k = 1;
for i = 1:n
path = ['myFile',num2str(i),'.dat']; % change this to fit your file names
fid = fopen(path, 'rb');
data = textscan(fid,'%s');
fclose(fid);
data = data{1};
vals(k) = str2double(data{8});
vals(k+1) = str2double(data{10});
vals(k+2) = str2double(data{40});
k = k+3;
end
out = [str, num2str(vals)];
fid = fopen('output.txt', 'w');
fprintf(fid,out);