How to remove a pattern in a table column
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi,
I have a table with a column. The column looks like this: 'AB_Off' 'ABC' 'CDE_Off'
I would like to remove the '_Off' from every cell in that column. I tried TF = endsWith, and match, but I always get error. "Error using string string is obsolete and will be discontinued. Use char instead." I don't know how to resolve this. Would you please help? Thanks,
Jennifer
0 comentarios
Respuesta aceptada
Jan Orwat
el 4 de Oct. de 2016
Editada: Jan Orwat
el 4 de Oct. de 2016
assuming T - your table, and n - number of column containing these strings you can do as follows:
T{:, n} = regexprep(T{:, n}, '_Off$', '');
or
T{:, n} = erase(T{:, n}, '_Off');
but second option doesn't detect if it's on the end of a string
Más respuestas (2)
Hamid Ebrahimi Orimi
el 4 de Oct. de 2016
you mean you have a cell which has 'ABC_Off' string in each element? If I understood correctly, the answer is as follow: A={'ABC_Off', 'ABC_Off','ABC_Off'} for i=1:length(A) if A{i}=='ABC_Off' A{i}='ABC'; end end A is your defined cell.
0 comentarios
elias GR
el 4 de Oct. de 2016
Editada: elias GR
el 4 de Oct. de 2016
strfind function is what you need ( https://www.mathworks.com/help/matlab/ref/strfind.html ). I suppose that you have a cell array of string. Then a simple general solution to remove the _Off from the end of the strings (we suppose that _Off only occurs at the end) is:
str={'AB_Off','ABC','CDE_Off'};
for i=1:length(str)
ind=strfind(str{i},'_Off');
if ~isempty(ind)
str{i}=str{i}(1:ind-1);
end
end
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!