Мне нужно сгенерировать несколько текстовых (или dat) файлов для загрузки в другое программное обеспечение. У меня есть два текстовых файла (aa.txt и bb.txt) и уравнение, которое генерирует случайные числа.
Созданный текстовый файл (или .dat) должен состоять из трех частей:
1- Содержимое aa.txt. 2- Случайно сгенерированные числа. 3- содержимое bb.txt.
содержимое файлов:
аа.txt -->
first file ,,, first line
First file ,,, second line
1234.1234
bb.txt -->
second file ,,, first line
second file ,,, second line
6789.6789
Я написал следующий код, но он создаст только один файл с содержимым первого исходного файла (aa.txt). Почему я получаю 1 файл? Почему переменная A не записана в сгенерированном файле?
NOF =3; % start with a goal to produce 3 files (small scale)
for ii = 1:NOF
ffid= fopen ('aa.txt','r'); % open the first source file (aa.txt), the idntifier is ffid
df = fopen (['file' sprintf('%d',ii) '.txt'], 'a'); % open a new (destination) file the identifier is df
line=fgets (ffid); % Read line from first source file
while ischar (line)
fprintf ('%s\n',line);
line =fgets (ffid);
fprintf (df , line); % write the newly-read line from first file to the destination file
end
fclose (ffid); % closing the first source file
A=randn(2,2); % this is just a randonly generated value for checking purposes and will be replaced later with a many sets of equations
save (['file' sprintf('%d',ii) '.txt'],'A', '-append');
sfid=fopen ('bb.txt','r'); % open the second source file, the idntifier is sfid
line2=fgets (sfid); % Read line from source file
while ischar (line2)
fprintf ('%s\n',line2);
line2 =fgets (sfid);
fprintf (df , line2);
end
fclose (sfid); % closing the first source file
end
fclose (df);
fclose('all');
save
там, где вы это делаете, даже если вы добавляете, потому что файл открыт (df
). - person Ander Biguri   schedule 06.04.2018f = ['file' sprintf('%d',ii) '.txt']; system(sprintf('aa.txt > %s && echo %f >> %s && bb.txt >> %s', f, randn(2,2), f))
- person rahnema1   schedule 06.04.2018