Clear Filters
Clear Filters

How to find the K max or min values contained in a vector?

3 views (last 30 days)
Before I attempt to write the code myself, I was wondering if a function already exists to find the k max values of a vector.
E.g. test_vec = [ 5 9 8 3 2 1 7 6]; k = 3; [max_vals, max_ids] = max_elems(test_vec, k); max_vals = [ 9 8 7] max_ids = [2 3 7]

Answers (1)

Sean de Wolski
Sean de Wolski on 13 Feb 2012
sort it 'descend' and extract the first k values.
  2 Comments
Christopher
Christopher on 13 Feb 2012
I need the corresponding indices from the original vector per my example.
Walter Roberson
Walter Roberson on 13 Feb 2012
[max_vals, max_ids] = sort(test_vec, 'descend');
max_vals = max_vals(1:k);
max_ids = max_ids(1:k);

Sign in to comment.

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!