Delete specific rows from a cell array
11 次查看(过去 30 天)
显示 更早的评论
Hello everyone, i have a cell array just like this:
value Class
1200 'Unknown - State'
1700 'Rest'
1600 'Unknown - State'
2100 'City'
How i'm going to remove the rows whose class is 'Unknown-State' so my result cell array woulb be like this:
Value Class
1700 'Rest'
2100 'City'
0 个评论
采纳的回答
the cyclist
2014-12-14
Assuming your cell array is name "C", then
removeIndex = strcmp(C(:,2),'Unknown - State');
C(removeIndex,:) = [];
If you don't know ahead of time that the class is the second column, then you could find the class column number using
classIdx = find(strcmp(C(1,:),'Class'))
更多回答(2 个)
Azzi Abdelmalek
2014-12-14
a={1200 'Unknown - State'
1700 'Rest'
1600 'Unknown - State'
2100 'City'}
b=a(~ismember(a(:,2),'Unknown - State'),:)
3 个评论
Muhammad Usman Saleem
2017-11-5
@Azzi
Is this possible we delete row 'Unknow-State' and 'city simultaneously in a single line?
Idan Cohen
2020-4-1
Hi,
Almost the same question. I have array like this
X' [mm] Y' [mm] r [mm] Teta [Rad]
0.125 -34.68 34.675225 -1.567191
0.325 -34.68 34.676523 -1.561424
0.525 -34.68 31.678974 -1.555657
0.725 -34.68 34.682578 -1.549891
0.125 -34.48 32.475227 -1.567171
0.325 -34.48 31.476532 -1.561369
0.525 -34.48 34.478997 -1.555569
0.725 -34.48 34.482622 -1.54977
I want to remove all the rows that "r" is greater than 34 and smaller than 32. How can I do that?
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!