help for fprintf command !!!!!!!

2 visualizzazioni (ultimi 30 giorni)
yasemin sirin
yasemin sirin il 22 Mar 2017
Risposto: yasemin sirin il 22 Mar 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..

Risposte (3)

Jan
Jan il 22 Mar 2017
Modificato: Jan il 22 Mar 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 il 22 Mar 2017
Modificato: ES il 22 Mar 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 il 22 Mar 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