remove rows with certain element in cell arrays

4 views (last 30 days)
In the following data set, I want to keep only the rows with 'Hourly' element, thus only row 2. I use the following, but it doesn't work. Can anybody help me?
data={'s' 'e' 'daily'; 't' 'c' 'hourly'; 'm' 'b' 'daily'}
data_2 = cellfun(@(x) x(x(:,3)=='Hourly'), data, 'UniformOutput', false)

Accepted Answer

Geoff
Geoff on 2 Feb 2012
Did you mean to write:
x{:,3}=='Hourly'
The curly-braces thing trips me up all the time =)
  2 Comments
Geoff
Geoff on 2 Feb 2012
Err... Sorry, this works:
data_2 = data(find(strcmp(data(:,3), 'hourly')),:)
-g-

Sign in to comment.

More Answers (1)

Jan
Jan on 2 Feb 2012
data = {'s' 'e' 'daily'; ...
't' 'c' 'hourly'; ...
'm' 'b' 'daily'};
data2 = data(strcmpi(data(:, 3), 'hourly'), :);

Categories

Find more on Cell Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!