Sort Function Help and Selecting Highest Values
Mostra commenti meno recenti
Hello, I am trying to create a MatLab function that takes in two inputs, x and y, and outputs select. select should be the same size as x. The elements of select should be the same as the corresponding element x if that element is one of the y largest values in x and 0 otherwise.
I know I am supposed to be using the Sort function to help pick the highest values, but I'm pretty unsure how to make this function.
Thank you for any help you can give.
Risposte (1)
Walter Roberson
il 23 Set 2011
xsorted = sort(x(:));
y_largest_x = xsorted(end-y+1:end);
(Yes, that was deliberately written a bit clumsy.)
12 Commenti
Kyle
il 23 Set 2011
Kyle
il 23 Set 2011
Walter Roberson
il 23 Set 2011
hint: ismember
Kyle
il 23 Set 2011
Walter Roberson
il 23 Set 2011
You have determined the n highest values. Now, how are you going to test each value in x to determine whether it is one of those high values?
Kyle
il 23 Set 2011
Walter Roberson
il 23 Set 2011
So... read the documentation on the function named "ismember"
Kyle
il 23 Set 2011
Walter Roberson
il 23 Set 2011
Consider:
if ismember(SOMETHING(5),y_largest_x)
select(5) = x(5);
end
Now figure out what SOMETHING should be.
Kyle
il 23 Set 2011
Walter Roberson
il 23 Set 2011
No.
It is difficult to give any more hints without giving the key answer away, which would ruin the purpose of the assignment.
The entire assignment can be completed with two statements plus the function header. Ah yes... I just remembered the hack that would allow it to be written as a single statement plus the function header.
Daniel Shub
il 25 Set 2011
This sounds like another challenge to see how few characters are needed ...
Categorie
Scopri di più su Resizing and Reshaping Matrices in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!