How Can I determine minimum value in a double array?
Show older comments
Hello every one;
have an array :
vect =[ 2.6660 2.2852 10.0000 3.2617 10.0000 10.0000 9.8532]
I want to get the mininmum value as well as its position
here in this vector:
min = 2.2852
position = 2
please help me!
I need it to continue my program
Thank you
Answers (2)
Don't use the built-in min function. It's second return argument will only return the location of the first occurrence of the min value. A more robust and general solution is to use min() in combination with find():
vect =[ 2.6660 2.2852 10.0000 2.2852 3.2617 10.0000 10.0000 9.8532];
minValue = min(vect(:))
% Find all the rows and columns where that value occurs:
indexes = find(vect == minValue)
See how in this case, where the min occurred in two locations, it found both of them: one at vect(2) and another one at vect(4).
2 Comments
Mira le
on 28 Nov 2021
Image Analyst
on 28 Nov 2021
clear('min'); % Get rid of your min variable you previously created.
vect =[ 2.6660 2.2852 10.0000 2.2852 3.2617 10.0000 10.0000 9.8532];
minValue = min(vect(:))
% Find all the rows and columns where that value occurs:
indexes = find(vect == minValue)
vect =[ 2.6660 2.2852 10.0000 3.2617 10.0000 10.0000 9.8532];
[vmin, idx] = min(vect)
4 Comments
Mira le
on 28 Nov 2021
Chunru
on 28 Nov 2021
"min" is a built in function; but you use it as a variable (strongly not recommended). Remove these lines and "clear all" to run your program.
min = 2.2852
position = 2
Mira le
on 28 Nov 2021
Chunru
on 29 Nov 2021
Then show your code so that we can help.
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!