如何在matlab中生成具有特定条件的随机二进制矩阵?

时间:2016-05-05 16:31:41

标签: matlab function matrix random

如果矩阵A显示G(n,m)矩阵中的一组数,那么

G = [ 1 1 0 0 1 
      0 1 1 1 0
      1 0 1 1 1 ] 

所以A矩阵将是

A = [ 2 1
      3 0
      1 3 ]

然后我想生成(n,m)随机矩阵,该矩阵中的矩阵依赖于A,它们出现的顺序相同

一个解决方案将是

x = [ 0 1 1 0 1
      0 0 1 1 1
      1 0 1 1 1 ]

另一种解决方案

x = [ 1 1 0 1 0
      1 1 1 0 0
      1 0 1 1 1 ]

1 个答案:

答案 0 :(得分:1)

正如对OP的评论中提到的,StackOverflow不是代码编写服务。话虽如此,这是一个有趣的问题,我决定做一个例外,无论如何回答它。

除了手续......

我认为我有一个通用的解决方案,它也可以处理一些(所有?)边缘情况,如G,零行等。下面的代码生成x矩阵的一个实例。

创建这些n的{​​{1}} - 由 - m数组保留“作为读者的练习”(主要是因为OP是否希望将其作为单元格数组来定义矩阵或4-D逻辑/双数组)。

要了解它的作用,请参阅代码+变量名称中的注释。我希望它足够清楚(并且我没有错过任何边缘情况)。

x