Assign nearest maximum value.
Ältere Kommentare anzeigen
I have a vector named A=[10,20,30,40], Suppose I need to find the number 25 from that vector, as 25 is not present in this vector, it should give me 30, i.e, nearest maximum value. How can I do that?
Akzeptierte Antwort
Weitere Antworten (2)
Why 30 and not 20? Both have a distance of 5.
A = [10,20,30,40];
S = 25;
[~, index] = min(abs(A - S));
A(index)
1 Kommentar
MakM
am 9 Feb. 2022
Image Analyst
am 9 Feb. 2022
Try this:
% Set up sample values.
A = [10, 20, 30, 40];
searchValue = 25;
% Get the distance from the array to the search value.
diffs = abs(A - searchValue)
% Find the min distance.
minDistanceValue = min(diffs)
% Find all indexes where the min difference occurs.
locations = find(diffs == minDistanceValue) % Returns [2, 3] since those locations are both 5 away from 25.
% If multiple locations, get the max of the values that meet the criteria.
maxValue = max(A(locations)) % Returns 30
Kategorien
Mehr zu Shifting and Sorting Matrices finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!