Clear Filters
Clear Filters

eliminating value out of range

6 views (last 30 days)
I have two matrix.
A = rand(8,10);
B = rand(8,41);
range = 0.5345 (y+ direction and y- direction, range of elements of A);
i want to take all elements of B which fall in the range of matrix A 's elements. The elements of B which does not fall in the range should be NaN.
  2 Comments
Matthew Eicholtz
Matthew Eicholtz on 14 Mar 2016
Edited: Matthew Eicholtz on 14 Mar 2016
I assume the code snippet you provide is just to demonstrate the size of A and B and not exactly how you create A and B? Because "A = rand(8,10);" will not necessarily yield a range of 0.5345.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 14 Mar 2016
Declare a logical variable that states when values are in range
inRange = B >= min(A(:)) & B <= max(A(:));
Now assign to nan if outside that range, as you asked:
B(~inRange) = nan;
Or you can extract only those that are in range into a new variable:
BInRange = B(inRange);
Or you can delete those that are not in range, giving a shorter B than the original:
B(~inRange) = [];

More Answers (0)

Community Treasure Hunt

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

Start Hunting!