Мне нужно выполнить 50 симуляций Abaqus, каждая симуляция анализирует определенное свойство материала, и каждая отличается изменением одного параметра. Итак, идея состоит в том, чтобы написать скрипт Matlab, который:
- открывает файл .inp
- редактирует интересующий параметр материала
- печатает его в новый файл, который будет новым файлом .inp
- запускает его для выполнения имитации
Это то, что я сделал до сих пор в очень упрощенной версии:
f= fopen('PRD8_30s.inp');
c = textscan(f,'%s %s %s %s %s ','delimiter',',');
fclose(f) ;
S = [c{1}];
A = {'5e-08'} ;
S(12496) = A ;
fid = fopen('file.inp','w') ;
fprintf(fid,'%s \n',S{:} );
fclose(fid) ;
Я вручную выяснил положение интересующего параметра (A на 12 496, следовательно, под линией *Viscoelastic). Код на самом деле изменяет нужный мне параметр, но есть серьезные проблемы: он печатает новый файл с дополнительными строками по отношению к исходному .inp (12552 против 8737) и печатает не весь .inp, а только первый столбец.
Как я могу отредактировать .inp, изменив параметр и получив новый .inp с отредактированным параметром, который можно использовать для запуска новой симуляции?
Заранее спасибо за вашу помощь!