伙计我通过考虑一些约束和另一个矩阵来制作随机矩阵是有问题的。
我有矩阵:
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).
感谢你们之前的帮助。
答案 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
强制执行第三个约束。