Adding Value in the array with proper indexing

3 views (last 30 days)
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 Comments
Rik
Rik on 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 on 27 Mar 2019
I want to add
E(4)+minval(1) and
E(1)+minval(2)

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 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

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 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 Comment
Maheen Fazal
Maheen Fazal on 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

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!