How to select a row vector with maximum fitness value if few of vectors are restricted to consider?
1 次查看(过去 30 天)
显示 更早的评论
I want to select a row vector ‘NS’ with maximum ‘newResultTF’ value when some of these row vectors are not considered for evaluation which appears in a certain list ‘TM’.
For example, I have a five row vectors under variable ‘NS’
NS(:,:,1) = 6 1 1 1 1
NS(:,:,2) = 5 3 1 1 1
NS(:,:,3) = 5 1 8 1 1
NS(:,:,4) = 5 1 1 3 1
NS(:,:,5) = 5 1 1 1 7
And their fitness values are under variable ‘newResultTF’
newResultTF(:,:,1) = 104
newResultTF(:,:,2) = 101
newResultTF(:,:,3) = 95
newResultTF(:,:,4) = 103
newResultTF(:,:,5) = 89
Restricted row vector are under variable ‘TM’
TM(:,:,1) = 6 1 1 1 1
TM(:,:,2) = 5 1 8 1 1
Now I want to select row vector ‘NS’ with maximum ‘newResultTF’ value except vectors in ‘TM’. For example in this case the selected vector is
NS(:,:,4) = 5 1 1 3 1
With maximum ‘newResultTF’ value
newResultTF(:,:,4) = 103
Please help. Thanks in anticipation!
0 个评论
采纳的回答
KSSV
2017-3-10
NS(:,:,1) = [6 1 1 1 1];
NS(:,:,2) = [5 3 1 1 1];
NS(:,:,3) = [5 1 8 1 1];
NS(:,:,4) = [5 1 1 3 1];
NS(:,:,5) = [5 1 1 1 7];
NS = squeeze(NS)' ;
newResultTF(:,:,1) = 104 ;
newResultTF(:,:,2) = 101 ;
newResultTF(:,:,3) = 95 ;
newResultTF(:,:,4) = 103 ;
newResultTF(:,:,5) = 89 ;
maxdata = squeeze(newResultTF)' ;
[val,id] = sort(maxdata,'descend') ;
TM(:,:,1) = [6 1 1 1 1] ;
TM(:,:,2) = [5 1 8 1 1] ;
TM = squeeze(TM)' ;
for i = 1:length(maxdata)
if ~ismember(NS(id(i),:),TM,'rows')
iwant = NS(id(i),:) ;
break
end
end
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!