Split values in an cell array by using a threshold

2 views (last 30 days)
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.

Accepted Answer

Matt J
Matt J on 19 May 2020
Edited: Matt J on 19 May 2020
One way,
A_lower = cellfun(@(x) x(x<threshold), A, 'uni',0);
A_upper = cellfun(@(x) x(x>threshold), A, 'uni',0);
  4 Comments
Matt J
Matt J on 19 May 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

Sign in to comment.

More Answers (0)

Categories

Find more on Image Processing Toolbox in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!