Как сохранить код в текстовые файлы за несколько шагов? - PullRequest
0 голосов
/ 10 июля 2019

Я пишу симуляцию, которая анализирует координаты X, Y, Theta системы.Я запускаю симуляцию с помощью TMAX и для N частиц.Однако, поскольку TMAX обычно очень большой, мне нужны данные только для каждых 100 временных шагов.В настоящее время мой код дает мне информацию для каждого временного шага и положения частицы.Тем не менее, он разбрасывает всю информацию на одну матрицу, т. Е. Если я запускаю моделирование из 12 частиц за 50 шагов (сокращенно для примера), первые 12 строк - это частицы 1-12, а их позиции в момент времени = 10.Однако следующие 12 строк - это частицы 1-12 в момент времени 20 и так далее.Как бы я сделал каждый раз шаг в свой собственный текстовый файл?Ниже приведен мой код:

fid = fopen('word.txt','w');
for nn = 1:TMAX
   if mod(nn,10)==0

    x = x + vel*cos(theta)*dt;
    y = y + vel*sin(theta)*dt;
    fprintf(fid, '%4.5f\t%4.5f\t%4.5f\n', x,y,theta);
   end
end  

В настоящее время это печать всех данных в одну матрицу.Строки 1-12 - это первый шаг по времени, затем 13-24 - второй шаг по времени.Как я могу сохранить каждый временной шаг в отдельный файл с другим именем?Есть ли способ сделать имя файла переменной?Большое спасибо

1 Ответ

0 голосов
/ 10 июля 2019

Вы можете поместить команду fopen в цикл и назвать файлы в соответствии с вашей переменной nn:

for nn = 1:TMAX
   if mod(nn,10)==0
      fid = fopen(['word' num2str(nn) '.txt'],'w');
      x = x + vel*cos(theta)*dt;
      y = y + vel*sin(theta)*dt;
      fprintf(fid, '%4.5f\t%4.5f\t%4.5f\n', x,y,theta);
      fclose(fid)
   end
end 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...