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

因此,如果您使用此答案来生成B满足约束 1 和 2 的 a,您可以使用与此类似的内容

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

强制执行第三个约束。

于 2012-08-24T14:05:49.083 回答