Adding Value in the array with proper indexing

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

Show an example of your desired output. Also have no idea why you deleted the previous question without responding to the comments.
i just want to give the clear idea what i want to ask ,thats why deleted the previous one
Output
E =
0.0305 0.7441 0.5000 0.4799
ES =
0.7441 0.5000 0.4799 0.0305
>> maxval
maxval =
0.7441 0.5000
>> minval
minval =
0.4799 0.0305
here the minval from the unsorted array are 1st and 3rd, if i again want to add these values in the previous array how shall i add them ?
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?
I want to add
E(4)+minval(1) and
E(1)+minval(2)

Sign in to comment.

 Accepted Answer

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)

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

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.

Categories

Community Treasure Hunt

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

Start Hunting!