Write to file inside a loop

조회 수: 8 (최근 30일)
Mini Me
Mini Me 2013년 3월 6일
I have this program where I open a file and write data points in it but the problem is I have to do that inside a loop. it goes:
file1=importdata('myfile.txt','%s')
for k=1:1:128
fid=fopen('myfile2.txt','w+') % I write input to that file and pass it to my
exe file
fprintf(fid,'input1')
fprintf(fid,'input2')
fprintf(fid,'input3')
the 4th input (input4) is being taken from a diff file.txt
input4=sscanf(file1{k},'%s')
Val=str2double(input4)
fprintf(fid,'%.3f',Val)
fclose(fid)
[status,result]=system('command<myfile2.txt')
M= sscanf(result,'%s')
more_result=[ Val M]
Fid2=fopen(myfile3.txt,'w+')
frpintf(Fid2,'%s', more_result)
end
Then I sscanf the results to get the a specific value (M) that I want. and I want to write Val and Z in another file but I only get the last value of each in the file. because fopen(fid,'w+') keep updating inside the loop. using a+ plus doesn't help and it keeps appending and never updates after the program is done running. RIght now I am using a+ then I manually delete the content of that file after i'm done running..writing outside the loop gives me error. is there a way I can clear the file after each run? Thanks

답변 (2개)

Walter Roberson
Walter Roberson 2013년 3월 7일
Use 'a+' to append. You can delete() the file when appropriate, and 'a+' will create it if need be.

Mini Me
Mini Me 2013년 3월 7일
Negative, a+ keep appending it which means after the data is run once they are saved there when i run it again it adds up more data instead of discard what was already there first. using w+ keeps updating inside the loop and only save the last data points because it keeps updating the previous ones. I want it only to update after everytime i run it not inside the loop. Im not sure if that makes sense..and delete() did not do a thing
  댓글 수: 2
Walter Roberson
Walter Roberson 2013년 3월 7일
What is the difference between "only save the last data points" and "want it only to update after everytime I run it" ?
Mini Me
Mini Me 2013년 3월 7일
well savin the last data mean the least point it get from the first file when the loop reaches 128..update after every run means writing all the points to the myfile3.txt file without updating it everytime it the loops increments and pick up another point which is what it does using w+ and also opening the file outside the loop. appending is the only one that works but once it's done running and I running again its add up 128 data points on top of what it already saved in that file...it only append not update

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Data Import and Export에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by