如何通过考虑约束和另一个矩阵来制作随机矩阵

时间:2012-08-24 07:17:38

标签: matlab

伙计我通过考虑一些约束和另一个矩阵来制作随机矩阵是有问题的。

我有矩阵:

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]

然后,我想要随机生成一个矩阵B(3,12),其值介于0和2之间([0 2])。 但有一些限制因素:

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).

感谢你们之前的帮助。

1 个答案:

答案 0 :(得分:0)

因此,如果您使用this answer,要生成满足约束条件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

强制执行第三个约束。