Adding Value in the array with proper indexing

7 visualizzazioni (ultimi 30 giorni)
Hi, here i have an array with random values, i have sort them and divide them in maximum and minimum values, after sorting the array the index of values is changes, if i want to add the minvalues in the orignal unsorted array with proper indexing. how should i do it?
ME=4;
E=rand(1,ME)
ES=sort(E,'descend')
Ls=length(ES);
Hl=(Ls/2);
maxval=ES(1:Hl);
minval=ES(Hl+1:end);
  5 Commenti
Rik
Rik il 27 Mar 2019
That is just the output of your current code, not the output of want as the end result. What vector do you want to have?
Maheen Fazal
Maheen Fazal il 27 Mar 2019
I want to add
E(4)+minval(1) and
E(1)+minval(2)

Accedi per commentare.

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 28 Mar 2019
ME=4;
E=rand(1,ME);
[ES,ii]=sort(E,'descend');
Ls=length(ES);
Hl=(Ls/2);
maxval=ES(1:Hl);
mxii = ii(1:Hl);
minval=ES(Hl+1:end);
mnii = ii(Hl+1:end);
Enew = E;
Enew(mnii) = Enew(mnii) + minval

Più risposte (1)

Andrei Bobrov
Andrei Bobrov il 27 Mar 2019
ME=4;
E=rand(1,ME);
[ES,ii]=sort(E,'descend');
Ls=length(ES);
Hl=(Ls/2);
maxval=ES(1:Hl);
mxii = ii(1:Hl);
minval=ES(Hl+1:end);
mnii = ii(Hl+1:end);
Enow = sortrows([maxval(:),mxii(:);minval(:),mnii(:)],2);
Enow = Enow(:,1);
  1 Commento
Maheen Fazal
Maheen Fazal il 28 Mar 2019
Sir, i want to add minval in the E array with same index values
e.g. if in the minval i have index 3,1 so i want to add them in the E array in their corresponding positions

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by