addition of two matrix's with constraints
1 次查看(过去 30 天)
显示 更早的评论
Hello,
i have following code which i want to modify ....
function new_fitness
W =[0 0 0 3;0 0 0 0;0 0 0 0; 3 0 0 0 ];
cost=[1 1 1 1;1 1 1 1;1 1 1 1;1 1 1 1];
FC= [10 10 10 10;10 10 10 10;10 10 10 10;10 10 10 10];
Fn = cost.*W+(W>0).*FC
disp(Fn);
end
my output is---
Fn =
0 0 0 13
0 0 0 0
0 0 0 0
13 0 0 0
but i want to modify it such a way that particular FC element is added only once if both W(i,j) and W(j,i)>0. then my output will be like---
Fn =
0 0 0 13
0 0 0 0
0 0 0 0
3 0 0 0
Thank You
0 个评论
采纳的回答
Andrei Bobrov
2014-9-13
out = W.*cost;
[ii,jj] = find(W > 0);
ij = sortrows([ii,jj]);
jj = sub2ind(size(W),ij(1,1),ij(1,2));
out(jj) = out(jj) + FC(jj);
1 个评论
Andrei Bobrov
2014-9-13
Wt = W.';
t1 = W > 0 & Wt == 0;
t2 = W > 0 & Wt > 0;
Fn(t1) = Fn(t1) + FC(t1);
Fn(t2) = Fn(t2) + FC(t2)/2;
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Genetic Algorithm 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!