如何在Matlab中运行多个文本文件并获取单独的输出文件?

时间:2018-09-02 17:03:28

标签: matlab

嗨,我有多个文本文件名ABR1.txt,ABR2.txt,....ABR1000.txt 我已经写下了用于距离计算的matlab代码。因此,我希望当前文件夹中存在的所有文件都应在此代码中运行,并提供单独的输出文件。因此,我正在尝试,但是只有一个ABR1.txt在提供输出。请检查一下,让我知道我能做什么?

clc
clear all

for n=1:2
        filename = ['ABR', int2str(n), '.txt'];
        Pop=load(filename);


[m n] = size(Pop);
n = m;
Dist = zeros(m, n);
for i = 1 : m
  for j = 1 : n
      Dist(i, j) = sqrt((Pop(i, 1) - Pop(j, 1)) ^ 2 + ...
                        (Pop(i, 2) - Pop(j, 2)) ^ 2);
  end
end
Dist
q=(1-(3/8)*Dist)

filename = ['ABRa', int2str(n), '.txt'];
save(filename, 'q', '-ascii');
end

1 个答案:

答案 0 :(得分:0)

您正在将变量“ n”用作循环/文件计数器以及读取的矩阵的大小。我不知道您正在加载的数据是什么样的,但是如果“ n”的值最终为1,那么您将只在其中写入带有“ 1”的文件名。您实际上可能写过两次,但是两次都有相同的文件名。

我将从将for循环更改为使用其他变量名称开始:

for iFile = 1:2

然后在文件名中进行更改:

filename = ['ABRa', int2str(iFile), '.txt'];

此外,如果您确实要读取1000个文件,则应循环运行1000次,而不要运行两次:

for iFile = 1:1000