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 个评论

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)

请先登录,再进行评论。

 采纳的回答

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

更多回答(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 个评论

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

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by