How to delete specific rows in a table based on a value?

Hi all,
I have a big table with 6 columns and would like to delete all rows where one column contains a specific value.
That's how the table looks like:
I would like to delete all rows, where T.ISIN == 'DE0006205701'
May you please help me with this?
Thanks so much in advance!

5 Comments

Show us what have you tried and where you ran into difficulty?
Attach your table in a .mat file so we can try things with it.
save('answers.mat', 'T');
In the meantime, try ismember().
I had thought about something like
T = T(T.ISIN~='DE0006205701',:);
but it doesn't work for cell..
I think the solution is
T = T(~contains(T.ISIN,'DE0006205701'),:);

Sign in to comment.

 Accepted Answer

I fortunately found the answer myself, it's
T = T(~contains(T.ISIN,'DE0006205701'),:);
Moroever, check out Image Analyst's solution, it works too!

More Answers (1)

Did you try ismember like I suggested above?
s = load('answers.mat')
T = s.T;
whos T % Show size.
% I would like to delete all rows, where T.ISIN == 'DE0006205701'
pattern = 'DE0006205701'
[ia, ib] = ismember(T.ISIN, {pattern});
fprintf('Found %d rows where ISIN = "%s". We will delete those.\n', sum(ia), pattern);
T(ia, :) = [];
whos T % Show size now.

1 Comment

thanks a lot for your help, this definitely works!
I think maybe even easier might be
T = T(~contains(T.ISIN,'DE0006205701'),:);

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!