How to create array from old array with values greater than a specified value?

26 views (last 30 days)
I have a cell array called timePks as seen below. Each cell has a column of numbers and I want to create a new cell array with the values from timePks that are greater than 20. I don't want the values that are less than 20 to be in the new cell array.
[timePks{i},timeLocs{i}]=findpeaks(aefm_1(1200:1450,i));
[ss{i},tt{i}] = find(timePks{i}>20);
When I run the code above, ss{i} gives me cell arrays of the row #'s that has a value above 20 but I want it to say the value, not the row number it belongs in.

Accepted Answer

David Hill
David Hill on 15 Jun 2020
for k=1:length(timePks)
newCell{k}=timePks{k}(timePks{k}>20);
end
  1 Comment
Kimberly Cardillo
Kimberly Cardillo on 15 Jun 2020
Thank you! I want to be able to say the first row is larger than the second row of each cell array. if true, then the value (labeled in a new vector) is equal to 1. How do I do that?

Sign in to comment.

More Answers (1)

the cyclist
the cyclist on 15 Jun 2020
% Some made-up data
timePks = {[10; 20; 30; 40],[5; 10; 20; 25],[1; 2; 3]};
% Output with only values greater than 20
output = cellfun(@(x)x(x>20),timePks,'UniformOutput',false)

Categories

Find more on Data Type Identification in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!