Borrar filtros
Borrar filtros

for loop multiple string replace

7 visualizaciones (últimos 30 días)
Siti Safwana Abd Razak
Siti Safwana Abd Razak el 30 de Dic. de 2022
Comentada: Siti Safwana Abd Razak el 30 de Dic. de 2022
hi all,
i want to replace some old string with new one. i can do in multiple strrep as below:
newChr = strrep(strrep(strrep(strrep(f, 'old', 'wana'), ...
'old1', 'wana1'), ...
'old2','wana2'), ...
'old3','wana3')
but it not convenient to replace 300++ new word. i try to do for loop as below, but dont have any idea to do it. Below my for loop code, anyone can helpme to automate this thing? for now, im still replace using the above methods. thanks
numLines = length(TestInstanceold);
for k = 1:numLines
filename = 'a.txt';
fid = fopen(filename,'r');
f=fread(fid,'*char')';
fclose(fid);
f= strrep(f, TestInstanceold(k,1), TestInstanceold(k,1))
end

Respuesta aceptada

Stephen23
Stephen23 el 30 de Dic. de 2022
Editada: Stephen23 el 30 de Dic. de 2022
MATLAB is designed to work neatly and efficiently with arrays. Rather than doing things one-at-a-time like that, you should be using arrays. For example:
A = "title: the cat in the hat";
old = [ "the", "cat", "in", "hat"];
new = ["seven","brides","for","brothers"];
Method one: REPLACE():
Z = replace(A,old,new)
Z = "title: seven brides for seven brothers"
Method two: REGEXPREP():
B = regexprep(A,old,new)
B = "title: seven brides for seven brothers"
Method three: STRREP() in a loop:
C = A;
for k = 1:numel(old)
C = strrep(C,old{k},new{k});
end
display(C)
C = "title: seven brides for seven brothers"

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by