- Read the file into a cell of strings (1 per line in the original file)
- Replace the keywords via a regexprep
- Save the new file
How to replace multiple strings in a txt file
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hi,
I would like to couple matlab to a another program so I can make a lot of models in a fast way. To do so, I need a txt file with commands in which I can modify some strings with Matlab. For example, in the txt file the commands are written...
*add_points
3
0
x1
0
0
x2
5
0
3
5
0
*set_curve_type line
*add_curves
50
49
49
52
52
51
*set_curve_type fillet
*add_curves
23
24
x3
..... and the idea is to replace x1,x2 and x3 with the values from A in which A is a 10*3 matrix and x1=A(1,:) and x2=(2,:) and x3=A(3,:).
So I have 10 text files to make the 10 models.
My question is: how to do this? I tried to use commands as txtscan, strrep but that didn't work for me...
Any suggestions? What would be the most easy way?
Thanks in advance!
Steven
0 Commenti
Risposta accettata
Sven
il 7 Set 2012
Modificato: Sven
il 7 Set 2012
Hi Steven,
Try this, it's basically 3 steps:
Does it work for you?
linesCell = cell(10000,1);
fid=fopen('myFile.txt');
lineNo = 0;
while 1
lineNo = lineNo+1;
linesCell{lineNo} = fgetl(fid);
if ~ischar(linesCell{lineNo}), break, end
end
fclose(fid);
linesCell(lineNo:end) = [];
A = rand(3,1);
for i = 1:size(A,1)
linesCell = regexprep(linesCell,sprintf('x%d',i),sprintf('%f',A(i)));
end
fid=fopen('myFileOut.txt','wt');
fprintf('%s\n',linesCell{:});
fclose(fid)
2 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Characters and Strings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!