Borrar filtros
Borrar filtros

Multiple outputs by a loop

3 visualizaciones (últimos 30 días)
Ivan Mich
Ivan Mich el 16 de Mayo de 2020
Comentada: Stephen23 el 16 de Mayo de 2020
Hello, I have a question. I would like to create multiple files(outputs) by a loop. File parameters.txt has two lines. I would like to create files with name output1 and output2, by a loop. My commands are these:
Param=regexp(fileread('parameters.txt'), '\r?\n', 'split') .';
for i=1:size()
fid = fopen( 'output%d', 'w');
fprintf(fid,'%s\n')
fclose(fid)
end
But I do not know how to make it . Could you help me?
  1 comentario
Stephen23
Stephen23 el 16 de Mayo de 2020
Note that with out a third (or more) input argument this will not print anything:
fprintf(fid,'%s\n')

Iniciar sesión para comentar.

Respuestas (2)

Ajay Kumar
Ajay Kumar el 16 de Mayo de 2020
Editada: Ajay Kumar el 16 de Mayo de 2020
Param=regexp(fileread('parameters.txt'), '\r?\n', 'split') .';
for i=1:size()
fid = fopen( ['output',i,'.txt'], 'w');
fprintf(fid,'%s\n')
fclose(fid)
end
  1 comentario
Stephen23
Stephen23 el 16 de Mayo de 2020
This will not work as expected.
Lets look at the actual output character vector when i=1:
>> i = 1;
>> double(['output',i])
ans =
111 117 116 112 117 116 1
Those are the printable characters 'o', 'u', 't', 'p', 'u' and 't', followed by the unprintable "Start of Heading" control character. I doubt that that is very useful, or intended.

Iniciar sesión para comentar.


Stephen23
Stephen23 el 16 de Mayo de 2020
Editada: Stephen23 el 16 de Mayo de 2020
Replace the fopen with these two lines:
fnm = sprintf('output%d.txt',i);
fid = fopen(fnm,'wt');
  2 comentarios
Ivan Mich
Ivan Mich el 16 de Mayo de 2020
OK, but in this code I am making some calculations. I want in these two output files to be contented the result of these calculations.
How could I do this?
Stephen23
Stephen23 el 16 de Mayo de 2020
"How could I do this?"
This is very general question: it is not clear which of the many steps involved you are asking about.
You don't explain what "calculations" are involved, so clearly I can't help with that. You don't even say what class or size the data arrays are, so I can't help you with selecting a suitable method to save your data.
If you want to export multiple files in a loop then you should pick a suitable function (which might be fprintf as your question shows):
and follow the examples here
Read the sprintf documentation to know how to specify the format string for the filenames:
Read the size documentation to know how to measure the dimensions of an array:

Iniciar sesión para comentar.

Categorías

Más información sobre Workspace Variables and MAT-Files en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by