Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何考虑约束和另一个矩阵生成随机矩阵_Matlab - Fatal编程技术网

Matlab 如何考虑约束和另一个矩阵生成随机矩阵

Matlab 如何考虑约束和另一个矩阵生成随机矩阵,matlab,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之间([02])。 但也有一些限制: a. no consecutive zeros (0) more than 2. b. sum all element in each

伙计们,我很难通过考虑一些约束和另一个矩阵来生成一个随机矩阵

我有一个矩阵:

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之间([02])。 但也有一些限制:

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).
a。连续零(0)不超过2。
B求矩阵B中每一行中的所有元素的和因此,如果要生成满足约束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
B=rand(3,12);%只是一个例子矩阵。

idx=比特和(A>=1,A考虑到你的答案,我认为你现在真的应该能够自己解决这个问题了。我很乐意帮忙,但这个问题和你问的其他问题非常相似,我几乎不认为你在努力。那么:前两个限制,你知道怎么做。你试着得到了什么t constraint in?@RodyOldenhuis:是的,第一个和第二个我知道,因为你先生,但实际上,我不知道什么时候我必须编译上面的三个约束。你知道我是新手,对吧。我总是在问之前先试一下。你知道的,先生,但是如果我不知道如何解决,我会问这里。第三个约束:如果我在循环时使用,它会花很长时间时间。我只想和别人分享(瑞德:这里),如果有人会帮助我,我真的会非常感谢。只需要帮助先生,实际上我不想再问别人我是否知道如何求解。对于这样小的矩阵,与向量化方法相比,使用显式循环语句(嵌套2或3或4深)可能导致的性能下降将是微不足道的请告诉我你花了多少时间来问这些问题。如果你能通过循环实现你想要的,那么就使用它们。如果你发布一个问题,比如你能帮助我提高这些循环的性能吗?你会得到比这里的问题更好的答案。你会觉得SO厌倦了为你编写代码而没有看到我吗你在做更多自己的工作吗?@HighPerformanceMark:是的,如果我总是问你,我很抱歉,谢谢你的帮助和建议。