Write to file inside a loop

7 次查看(过去 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 中查找有关 Environment and Settings 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by