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

105 次查看(过去 30 天)
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 个评论
Carl Schneegaß
Carl Schneegaß 2020-12-13
I had thought about something like
T = T(T.ISIN~='DE0006205701',:);
but it doesn't work for cell..

请先登录,再进行评论。

采纳的回答

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

更多回答(1 个)

Image Analyst
Image Analyst 2020-12-13
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 个评论
Carl Schneegaß
Carl Schneegaß 2020-12-13
thanks a lot for your help, this definitely works!
I think maybe even easier might be
T = T(~contains(T.ISIN,'DE0006205701'),:);

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Tables 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by