How do I export the calculations of a textfile?

5 visualizaciones (últimos 30 días)
Eneru Y
Eneru Y el 22 de Mzo. de 2017
Comentada: Walter Roberson el 22 de Mzo. de 2017
I have to export to a file all the values of variables X and Y.
A = 10:0.1:100;
B = 100:1:1000;
C = 1:0.01:10;
X = A .* B;
Y = (A ./ B) .* C;
i.e. the X and Y values for each value of A, B and C. I've tried with
M = [ X ; Y ];
nomefile = fopen ( 'FILE.txt' , 'a');
fprintf ( nomefile , '%16.15E %16.15E\r\n' , M );
fclose (nomefile);
but I got a mess. I was supposed to get a file with 7.29E+08 lines, but I got a much smaller file with wrong values. Thank you!
  7 comentarios
Stephen23
Stephen23 el 22 de Mzo. de 2017
Editada: Stephen23 el 22 de Mzo. de 2017
"Thus X column = 811,801 rows and Y column = 731,432,701 rows"
Nope, not even close:
>> size(X)
ans =
1 901
>> size(Y)
ans =
1 901
If you want matrix multiplication then you need to use the correct operator. If you want all permutations then use bsxfun, although you will likely run out of memory.
Walter Roberson
Walter Roberson el 22 de Mzo. de 2017
Using ndgrid or bsxfun runs out of memory on my machine.
Also, 901*901 is odd, so it is not clear how one would write it out as two columns? Two in which order? Should the last of the rows have only one entry?

Iniciar sesión para comentar.

Respuestas (1)

Eneru Y
Eneru Y el 22 de Mzo. de 2017
I think I found the solution:
for A = 10:0.1:100
for B = 100:1:1000
for C = 1:0.01:10
X = A * B;
Y = (A / B) * C;
U = [ X ; Y ];
fid = fopen('FILE.txt','a');
fprintf(fid,'%16.15E %16.15E\r\n', U );
fclose(fid);
end
end
end
This way it works. Thanks anyway!
  2 comentarios
Stephen23
Stephen23 el 22 de Mzo. de 2017
Editada: Stephen23 el 22 de Mzo. de 2017
It would be much better to open the file before and after the loop, use w to write to a cleared file, and use the t option (because this handles newlines correctly):
fid = fopen('FILE.txt','wt');
for ...
....
fprintf(fid,'%16.15E %16.15E\n', U );
end
fclose(fid);
Eneru Y
Eneru Y el 22 de Mzo. de 2017
Thank you!

Iniciar sesión para comentar.

Categorías

Más información sobre Low-Level File I/O 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