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

1 Ansicht (letzte 30 Tage)
Eddy Iswardi
Eddy Iswardi am 28 Mär. 2020
Kommentiert: Peng Li am 28 Mär. 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]

Antworten (3)

Peng Li
Peng Li am 28 Mär. 2020
[~, ind] = sort(y);
y(ind(end-2, end)) = y(ind(ind-2, end)) + ax;
Should meet your need.
  4 Kommentare

Melden Sie sich an, um zu kommentieren.


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

Torsten
Torsten am 28 Mär. 2020
[~,idx]=maxk(y,3);
y(idx)=y(idx)+sx;
y
  3 Kommentare
Torsten
Torsten am 28 Mär. 2020
[~,idx] = sort(y,'descend');
y(idx(1:3))=y(idx(1:3))+sx;
y

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by