Как запустить несколько текстовых файлов в Matlab и получить отдельный выходной файл? - PullRequest
0 голосов
/ 02 сентября 2018

Привет, у меня несколько текстовых имен файлов 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 голосов
/ 03 сентября 2018

Вы используете переменную "n" как в качестве счетчика цикла / файла, так и в качестве размера матрицы, которую вы читаете. Я не знаю, как выглядят данные, которые вы загружаете, но если «n» будет иметь значение 1, вы когда-нибудь напишите имя файла только с «1». Возможно, вы пишете это дважды, но оба раза имеют одинаковое имя файла.

Я бы начал с изменения вашего цикла for, чтобы использовать другое имя переменной:

for iFile = 1:2

Затем также измените его в имени файла:

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

Кроме того, если вы действительно пытаетесь прочитать 1000 файлов, вы должны выполнить цикл 1000 раз, а не дважды:

for iFile = 1:1000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...