Split values in an cell array by using a threshold

2 vues (au cours des 30 derniers jours)
Sabari G
Sabari G le 19 Mai 2020
Commenté : Sabari G le 20 Mai 2020
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.

Réponse acceptée

Matt J
Matt J le 19 Mai 2020
Modifié(e) : Matt J le 19 Mai 2020
One way,
A_lower = cellfun(@(x) x(x<threshold), A, 'uni',0);
A_upper = cellfun(@(x) x(x>threshold), A, 'uni',0);
  4 commentaires
Matt J
Matt J le 19 Mai 2020
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 le 20 Mai 2020
Thanks a lot!! It works

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Image Processing Toolbox dans Help Center et File Exchange

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by