Azzera filtri
Azzera filtri

eliminating value out of range

6 visualizzazioni (ultimi 30 giorni)
Mayank Lakhani
Mayank Lakhani il 14 Mar 2016
Commentato: Mayank Lakhani il 15 Mar 2016
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 Commenti
Matthew Eicholtz
Matthew Eicholtz il 14 Mar 2016
Modificato: Matthew Eicholtz il 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.
Mayank Lakhani
Mayank Lakhani il 15 Mar 2016
yes, you are right.

Accedi per commentare.

Risposta accettata

Image Analyst
Image Analyst il 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) = [];

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by