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

25 visualizaciones (últimos 30 días)
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.

Respuesta aceptada

David Hill
David Hill el 15 de Jun. de 2020
for k=1:length(timePks)
newCell{k}=timePks{k}(timePks{k}>20);
end
  1 comentario
Kimberly Cardillo
Kimberly Cardillo el 15 de Jun. de 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?

Iniciar sesión para comentar.

Más respuestas (1)

the cyclist
the cyclist el 15 de Jun. de 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)

Categorías

Más información sobre Data Type Identification en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by