Split values in an cell array by using a threshold

Hello everyone.I have a cell array of variable (A), 1x91.In each cell it has an array of size 256x256.I would like to threshold each array so that elements lesser than or greater than a given threshold value are stored in different variable.Your help is really appreciated.

 Respuesta aceptada

Matt J
Matt J el 19 de Mayo de 2020
Editada: Matt J el 19 de Mayo de 2020
One way,
A_lower = cellfun(@(x) x(x<threshold), A, 'uni',0);
A_upper = cellfun(@(x) x(x>threshold), A, 'uni',0);

4 comentarios

Sabari G
Sabari G el 19 de Mayo de 2020
Thanks for your respone.Here i get empty cell array.Myy threshold value is 0.5.
Sabari G
Sabari G el 19 de Mayo de 2020
It doesnt work.It shows error message like this.can u suggest me another way and I have one doubt in the code..what does the X means in the above code.
Error using cellfun
Input #2 expected to be a cell array, was double instead.
Error in duru (line 36)
A_lower = cellfun(@(x) x(x<threshold), A, 'uni',0);.
In the case where you got empty matrices, it because none of your data fall below 0.5. In the case where you got error messages, it is because your A variable is not a cell array.
Below is a small example showing that the technique will work when properly applied:
>> A={rand(3), rand(3)}; A{:}
ans =
0.5407 0.9734 0.1941
0.8929 0.6006 0.7933
0.9092 0.8582 0.8144
ans =
0.5087 0.0331 0.7163
0.3399 0.1797 0.3758
0.6815 0.7166 0.3589
>> A_lower = cellfun(@(x) x(x<0.5), A, 'uni',0); A_lower{:}
ans =
0.1941
ans =
0.3399
0.0331
0.1797
0.3758
0.3589
Sabari G
Sabari G el 20 de Mayo de 2020
Thanks a lot!! It works

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Construct and Work with Object Arrays en Centro de ayuda y File Exchange.

Productos

Versión

R2018a

Preguntada:

el 19 de Mayo de 2020

Comentada:

el 20 de Mayo de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by