help for fprintf command !!!!!!!

조회 수: 2 (최근 30일)
yasemin sirin
yasemin sirin 2017년 3월 22일
답변: yasemin sirin 2017년 3월 22일
ı 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..

답변 (3개)

Jan
Jan 2017년 3월 22일
편집: Jan 2017년 3월 22일
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 2017년 3월 22일
편집: ES 2017년 3월 22일
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 2017년 3월 22일
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

카테고리

Help CenterFile Exchange에서 Whos에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by