help for fprintf command !!!!!!!

2 visualizaciones (últimos 30 días)
yasemin sirin
yasemin sirin el 22 de Mzo. de 2017
Respondida: yasemin sirin el 22 de Mzo. de 2017
ı want to see random number generated in 1 run
for i = 1 : n
a=rand(1);
city_1 = round(length(inputcities)*a);
fileID = fopen('rndm.txt','w+');
for i=1:length(a)
fprintf(fileID,'%6.4f\n',a);
end
fclose(fileID);
when ı run programe it writes only one value for a.. but ı want it to write all rondom numbers during one run
thanks..

Respuestas (3)

Jan
Jan el 22 de Mzo. de 2017
Editada: Jan el 22 de Mzo. de 2017
fileID = fopen('rndm.txt','w+');
for i = 1 : n
a = rand(1);
city_1 = round(length(inputcities)*a); % Not used at all
fprintf(fileID, '%6.4f\n', a);
end
fclose(fileID);
Open the file once before the loop. You do not need the for i=1:length(a) loop, when a has one element only.
This might be easier:
fileID = fopen('rndm.txt', 'w+');
a = rand(1, n);
fprintf(fileID, '%6.4f\n', a);
fclose(fileID);

ES
ES el 22 de Mzo. de 2017
Editada: ES el 22 de Mzo. de 2017
You are opening the file in write mode inside a for loop. So everytime the file gets overwritten.
Open the file (fileID = fopen('rndm.txt','w+');) before the for loop.
fileID = fopen('rndm.txt','w+');
for i = 1 : n
a=rand(1);
city_1 = round(length(inputcities)*a);
for i=1:length(a)
fprintf(fileID,'%6.4f\n',a);
end
end
fclose(fileID);

yasemin sirin
yasemin sirin el 22 de Mzo. de 2017
thanks for your answers....ı open the file outside the loop and ı changed w+ to a+ then i can get whole set of random numbers.... again thanks so much

Community Treasure Hunt

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

Start Hunting!

Translated by