0

みんな、いくつかの制約と別の行列を考慮してランダムな行列を作成するのに問題があります。

私は行列を持っています:

A= [ 1 4 3 5 2 6 8 7 10 11 12 9;
     4 1 2 3 6 5 9 8 7 10 11 12;
     1 2 3 4 5 6 12 9 8 10 11 7]

次に、0 から 2 ([ 0 2]) の間の値を持つ行列 B (3,12) をランダムに作成します。しかし、いくつかの制約があります:

a. no consecutive zeros (0) more than 2.
b. sum all element in each row in matrix B <=11,
c. if there is value 1 or 2 or 3 or 4 in coordinate (a,b) in matrix A. so we have to force in coordinate(a,b+1) in matrix B have value zero (0).

みんなの前に助けてくれてありがとう。

4

1 に答える 1

0

したがって、この回答を使用して、制約 1 および 2 を満たすを生成する場合、Bこれに似たものを使用できます。

B = rand(3, 12); %# Just an example matrix.
idx = bitand(A >= 1, A <= 4);
B([false(size(idx, 1), 1) idx(:,1:end-1)]) = 0

3 番目の制約を適用します。

于 2012-08-24T14:05:49.083 に答える