필터 지우기
필터 지우기

How to order 'n' no of populations in ascending order based on their fitness for a minimization objective in matlab

조회 수: 2 (최근 30일)
How to order 'n' no of populations in ascending order based on their fitness for a minimization objective in matlab?
  댓글 수: 2
dhiman banerjee
dhiman banerjee 2019년 9월 20일
Thank you for the reply. But this code gives fitness value of te each population in acending order. My problem is - that to reorder each population (i.e rows of the population matrix) as per the fitness value of each population in ascending order (Minimization objective)
Kindly help me in this point.
Syed Ahmed
Syed Ahmed 2022년 11월 24일
Try this i had the same issue as you.
fitnessVector = [106; 100; 120; 104]; % fitness value
popu = [12 11 67 89 56; % populationn vector
45 13 77 39 86;
92 54 67 79 76;
62 54 65 9 5];
[X,I] = sort(fitnessVector); % to get indexes of order
popu = [I,popu]; % add index order as first column
popu = sortrows(popu,'descend'); % sorts based on the first column of matrix
fitnessVector = X % fitness values
fitnessVector = 4×1
100 104 106 120
popu(:,1) = []; % remove first column from population.

댓글을 달려면 로그인하십시오.

채택된 답변

thoughtGarden
thoughtGarden 2019년 9월 19일
편집: thoughtGarden 2019년 9월 20일
I'm assuming you already have the fitness of each population according to the minimization objective. If this is the case, you will simply obtain the index order from the "sort" function while using the "direction" parameter.
sortedIndex = sort(fitnessVector, [],'ascend');
If you found this answer to be correct, please accept it. Otherwise, please add aditional comments so that it may be improved.

추가 답변 (0개)

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

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

Start Hunting!

Translated by