计算单个点所涵盖的点数

时间:2013-12-24 08:27:36

标签: matlab points

我在使用MATLAB找到非支配解决方案的强度方面存在问题

目标函数。

实际上,我知道它的概念及其if条件陈述,但我无法提取所需的

数据。

没有细节和困惑,

我认为下图清楚地解释了我的问题:

pareto

绘制垂直和水平黑线只是为了知道红点

由蓝点覆盖。

对蓝点1的处理也对其他蓝点2和3进行了

就是这样

最终输出向量应为:

[ 4  4  2 ]

我试过的是:

clear all
clc
% the non dominated solutions are:
N = [ 1.5   3
  2.5    1.5
  4    0.5 ] ;
% And the dominated solutions are:
D  = [2     4
  2.5    3
  3      1.5
  3      4
  4      1
  4      3 ] ;

n=size(N);
d=size(D);

for i=1:n(1)
for j=1:d(1)
    if N(i,1)<=D(j,1) && N(i,2)<=D(j,2)
 %%%%%%%%%%%%%%%%%%%%%%%%%
 % I have a problem here %
 %%%%%%%%%%%%%%%%%%%%%%%%%        
end
end
end

任何帮助都非常感谢

1 个答案:

答案 0 :(得分:0)

clear all
N = [1.5 3; 2.5 1.5; 4 0.5];
D = [2 4; 2.5 3; 3 1.5; 3 4; 4 1; 4 3];
inds = false(size(D,1),size(N,1));
for ii = 1:size(N,1);
    inds(:,ii) = D(:,1) >= N(ii,1) & D(:,2) >= N(ii,2);
end
results = sum(inds);
[d n] = find(inds);
for ii = 1:size(N,1)
    disp(N(ii,:))
    disp([d(n == ii) D(inds(:,ii),:)])
end

结果包含您在第一篇文章中提到的内容

d包含从D矩阵中选择的点的索引,为点N(n(i),:)选择点D(d(i),:),是否足够清楚? :)