Cell array row deletion

Hi! I have a cell array with a 10647x16 dimension. In the first column I have an identifying name for each row. I want to delete the rows that match the column names I have. I'll put a picture for better reference.
I want to delete the rows that match the 'filename' I write. I need to delete 40 rows.

1 个评论

I'm so sorry to bother you. I would like to include this data of yours in my research paper, if it is possible, could you please send me the complete table. I really need it!! Thank you so so much~~
PS:My email:zlwww142536@163.com

请先登录,再进行评论。

回答(2 个)

c={'a',1,2;'b',3,4}
index=strcmp(c(:,1),'a')
c(index,:)=[]

3 个评论

Thanks! I have 40 files that I need to delete and it says it is overflowed. That there are a lot of arguments.
What do you mean 40 files? 40 filenames maybe?? You can remove multiple rows in one shot.
c={'a',1,2;'b',3,4;'c',1,2;'d',2,3;'e',5,6}
filenames={'b';'d'}
index=ismember(c(:,1),filenames);
c(index,:)=[]
Adam Danz
Adam Danz 2021-1-20
编辑:Adam Danz 2021-1-20
If you want to match strings ignoring case, use strcmpi instead of strcmp.
If you're matching to more than 1 string while ignoring case, use
ismember(lower(c(:,1)), lower(filenames)) % or upper()

请先登录,再进行评论。

Use ismember(). Something like...
fileNamePattern = 'MUSE20180113_171327_27000';
% Compare this character array to the list of them in column 1 of ca (the cell array)
% and find out which row contains it.
[~, row] = ismember({fileNamePattern}, ca(:, 1));
% Delete it
if ~isempty(row)
ca(row, :) = [];
end
Attach your cell array if that doesn't work.

2 个评论

Hi! I want to delete 40 files but I can't with this method. I get the following error: Subscript indices must either be real positive integers or logicals.
Did you miss the last sentence in my answer? I'll check back tomorrow for it.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Language Support 的更多信息

产品

版本

R2015a

Community Treasure Hunt

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

Start Hunting!

Translated by