根据整个矩阵的约束选择矩阵列

时间:2016-03-21 09:37:36

标签: algorithm matlab matrix octave

我正在尝试构建一个Hsiao奇偶校验矩阵。我想构建一个具有Hsiao's paper中所述属性的矩阵。构建矩阵的步骤之一是

  

可以从nchoosek(r,3)权重 - 3列中选择k列。这里,rk分别是校验位和数据位的数量。此外,完成以下操作(nchoosek(r,3) >= k,其中k == No. of data bits)。

在Matlab中,我能够使用以下内容获得包含所有权重 - 3列组合的矩阵:

unique(perms([1,1,1,0,0,0]) # For a (22,16) code.

然而,优化逻辑深度的另一个步骤是确保当我们选择k列时,我们应该选择它们,使得每行中的1个相同的数量接近平均值(转换为每个校验位必须执行的XOR操作数。)

现在,有没有办法指定从整个矩阵的矩阵中选择列的约束?也就是说,Octave / Matlab有没有办法指定像

这样的条件
  

选择k列,使ones(rowi)的数量大约等于ones(rowj)的数量i != j)##或者我可以指定可容忍的差异。

示例

说,我有以下五列:

(1 0 0), (1 0 1), (0 1 0), (1 1 0), (0 0 1)

并说我必须选择k=2列,我可以选择(1 1 0)(0 0 1)(我也可以选择(1 0 1)(0 1 0),但不是(1 0 0)(1 0 1))满足上述条件。

编辑1:我知道我可以做类似于Peter Norvig Sudoku solver page所做的事情。只是希望在Octave / Matlab中可能有一种惯用的方法来实现这一点,或者利用我可能缺少的任何属性。否则,我将不得不卷起袖子并开始自己实施约束传播引擎。

0 个答案:

没有答案