how to process the data in a file and repeat the procedure for different folders?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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?
2 comentarios
Stephen23
el 23 de Ag. de 2021
"Do you have any ideas?"
Loop over the folders, import the file data, change the data, export the data to file.
Respuesta aceptada
Wan Ji
el 23 de Ag. de 2021
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 comentarios
Wan Ji
el 23 de Ag. de 2021
you can use newline instead ch = [ch(1:s1),newline, ss, newline,ch(s2:end)];
Más respuestas (0)
Ver también
Categorías
Más información sobre Other Formats en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!