How to add the value of the 3 highest elements automatically from a vector?

1 vue (au cours des 30 derniers jours)
Eddy Iswardi
Eddy Iswardi le 28 Mar 2020
Commenté : Peng Li le 28 Mar 2020
I want to add the 3 highest elements of 'y' to 'sk'. But I don't know what code to use to automatically add them. in this case, the elements in question are 12, 12, and 13. So that the value will be 12 + 9 = 21, 12 + 9 = 21, 13 + 9 = 22. This is my code
clc;
clear all;
x1=[1 2 3 4 5 6 7 8 9 10 11];
x2=[1 2 3 4 5 6 7 8 9 10 11];
y=[10 9 11 10 11 11 9 10 12 12 13];
sx=9;
and the result will be
y = [10 9 11 10 11 11 9 10 21 21 22]

Réponses (3)

Peng Li
Peng Li le 28 Mar 2020
[~, ind] = sort(y);
y(ind(end-2, end)) = y(ind(ind-2, end)) + ax;
Should meet your need.
  4 commentaires
Eddy Iswardi
Eddy Iswardi le 28 Mar 2020
oke, thank you. It's work now.
Peng Li
Peng Li le 28 Mar 2020
Thanks Ameer. Using cell phone lol

Connectez-vous pour commenter.


J. Alex Lee
J. Alex Lee le 28 Mar 2020
like this?
[~,idx] = maxk(y,3)
y(idx) = y(idx) + sx
Are x1 and x2 irrelevant to your question?

Torsten
Torsten le 28 Mar 2020
[~,idx]=maxk(y,3);
y(idx)=y(idx)+sx;
y
  3 commentaires
Torsten
Torsten le 28 Mar 2020
[~,idx] = sort(y,'descend');
y(idx(1:3))=y(idx(1:3))+sx;
y
Eddy Iswardi
Eddy Iswardi le 28 Mar 2020
oke, thank you. It's work now.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by