3

matlab で順序付きクロスオーバーを作成する必要があります。次のように、親 P1 と P2 があります。

P1=[1 2 3 4 ; 0 1 1 0],
P2=[3 2 1 4 ; 0 1 0 0].

最初の 1 [場所 P1(2,2) と P2(2,2)] が私の交差点です。今、私は次のように子孫を残す必要があります:

O1=[1 2 3 4 ; 0 1 0 0],
O2=[3 2 1 4 ; 0 1 0 0].

手伝ってくれませんか?ベスト、エルナス

4

1 に答える 1

2

交点を見つけるには、親の 2 行目に論理 AND 演算子を使用します。

idx = find(P1(2, :) & P2(2, :));

次に、クロスオーバー ポイントの後に親の間で値を切り替えて、子孫を作成します。

O1 = [P1(:, 1:idx), P2(:, idx + 1:end)];
O2 = [P2(:, 1:idx), P1(:, idx + 1:end)];

お役に立てれば!

于 2013-04-30T14:58:49.453 に答える