Info

この質問は閉じられています。 編集または回答するには再度開いてください。

elements order is not same in estimated vector as in my desired vector

1 回表示 (過去 30 日間)
Sadiq Akbar
Sadiq Akbar 2020 年 9 月 30 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
I have an m file that is as follows:
half_1st = 1:3; %half_1st = 1:3;
half_2nd = 4:6; %half_2nd = 4:6;
dim=6;
two=zeros(100,dim);
tt=1:100;%--------------(1)
nn=0;
for n=1:100 %------------(2)
nn=nn+1;
%--Call FPA
[best,fmin,N_iter,time]=fpa(10,0.8,10000,dim,[0 0 0 0 0 0],[10 10 10 pi pi pi])%-------------(A)
one(nn)=fmin;
temp(nn,:)=best; % Best estimated vector
time1(nn)=time; %Elapsed_Time;
%----Check the estimated vector placed in temp for Swapping
[sortTemp, sortIndex] = sort(temp(nn,half_1st));
two(nn,:)= temp(nn,[half_1st(sortIndex) half_2nd(sortIndex)]);
end
%%%%%%%%%%%%%%%%%%%%%%%% End of code%%%%%%%%%%%%%%%%%%%%%%
In this I call Flower Pollination algorithm (fpa) which returns me 4 variables. There is a vector u inside fpa already defined by me
as:
th=pi/180;
u=[3 1 5 105*th 155*th 50*th];
The fpa algorithm generates its own vectors of same size as above u. Then it sends those vectors to my fitness function and fitness is checked of those vectors
there. The vector whose fitness has minimum value is returned by fpa as "best" vector. And that vector is actually the same as my u. In other words that fpa algorithm
estimates my desired vector. But the problem is that when the fpa algorithm generates its owns vectors, the order of inside elements of each of them is changing.So the
position of the elements in estimated vector may not be the same as in my u vector. For that someone had helped me here to have the same order in the setimated vector as
that of my vector u. That help was as:
[sortTemp, sortIndex] = sort(temp(nn,half_1st));
two(nn,:)= temp(nn,[half_1st(sortIndex) half_2nd(sortIndex)]);
But when I run the program, it returns the estimated vector as:
estimated vector=[1 3 5 2.7053 1.8326 0.87266].
i.e. as you can see the positions of the elements of u and estimated vector are not the same. I want to get the same order of the elemements in the estimated vector as in u.
[SL: Formatted the text part of the question as text not code]

回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by