MATLAB Answers

How to remove a pattern in a table column

57 views (last 30 days)
JFz on 4 Oct 2016
Commented: JFz on 4 Oct 2016
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,


Sign in to comment.

Accepted Answer

Jan Orwat
Jan Orwat on 4 Oct 2016
Edited: Jan Orwat on 4 Oct 2016
assuming T - your table, and n - number of column containing these strings you can do as follows:
T{:, n} = regexprep(T{:, n}, '_Off$', '');
T{:, n} = erase(T{:, n}, '_Off');
but second option doesn't detect if it's on the end of a string

More Answers (2)

Hamid Ebrahimi Orimi
Hamid Ebrahimi Orimi on 4 Oct 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.


Sign in to comment.

elias GR
elias GR on 4 Oct 2016
Edited: elias GR on 4 Oct 2016
strfind function is what you need ( ). 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:
for i=1:length(str)
if ~isempty(ind)

  1 Comment

JFz on 4 Oct 2016
Thanks a lot.
What I have is a column in a Matlab table. the 'AB_Off', 'ABC', 'CDE_Off' are on different rows in that same column. Is there a way to make all the '_Off' in that column go away? Thanks,

Sign in to comment.



Community Treasure Hunt

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

Start Hunting!