필터 지우기
필터 지우기

how to process the data in a file and repeat the procedure for different folders?

조회 수: 2 (최근 30일)
I have a set of files called "p" under the folder of "surface->0.1 (folder named by time steps)->patchgorund->scalarField". As you can see in the attachment, in the file "p" there are 400 data inside bracket. Now I have to change those data by minus a number, for example, p-1000. Then repeat this procedure for each folder (0.1, 0.2, 0.3.....->patchgorund->scalarField->p). Do you have any ideas?

채택된 답변

Wan Ji
Wan Ji 2021년 8월 23일
Here is an example for reading files and changing its content
q = 0.1:0.1:2;
folder = arrayfun(@(i)['surface\',num2str(q(i)),'\patch_ground\scalarField\p'],1:numel(q),'uniform',0);
for i = 1:1:numel(fid)
s = fileread(folder{i});
ch = s;
s1 = strfind(ch,'(');
s2 = strfind(ch,')');
data = str2num(ch(s1+1:s2-1)) - 1000; % minus 1000
ss = num2str(data','%f\n');
ch = [ch(1:s1), ss, ch(s2:end)];
fid = fopen(folder{i},'wt');
fprintf(fid,'%s',ch);
fclose(fid);
end
  댓글 수: 5
kimy
kimy 2021년 8월 23일
However, what I got is like below if I added '\n', which seems to me '\n' was regarded as a string in this case.
400
(\n195910.263000
195908.263000
......
Wan Ji
Wan Ji 2021년 8월 23일
you can use newline instead ch = [ch(1:s1),newline, ss, newline,ch(s2:end)];

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by