标签: binary-matrix

二进制矩阵向量乘法

我想将8x8 二进制矩阵乘以由无符号字符表示的8位向量表示为无符号64位整数.但是,由于一些其他问题,矩阵必须按列排序,因此不容易匹配字节以便于乘法.

知道如何加快这样的计算吗?每项操作都是重要的,我需要进行数十亿次这样的计算.

乘法是在2元素场(F-2)上进行的.

c vector matrix binary-matrix

7
推荐指数
2
解决办法
3076
查看次数

R:所有可能独特结果的二进制矩阵

如何为'i'变量X的所有可能排列生成二进制矩阵,其中"i"可以是1和无穷大之间的任何数字.结果矩阵将具有2 ^ i个唯一行.

对于i = 2,变量x1,x2各自的可能值为1或0,因此得到的矩阵将是:

X1 X2
0 0
0 1
1 0
1 1
Run Code Online (Sandbox Code Playgroud)

R中是否有任何函数可以生成?

我试过以下功能:

   matrix(rbinom(160, 1, 0.5),ncol=5,nrow=(2^5))
Run Code Online (Sandbox Code Playgroud)

但结果并未显示所有可能的值.

binary r matrix binary-matrix

5
推荐指数
1
解决办法
4341
查看次数

R中的分组

我想在R中的二进制矩阵上应用byclustering。有一个很好的包叫做“ biclust”,但它确实可以,并且不显示我想要的所有内容。

我有一个二进制矩阵,如下所示:

1 0 0 1 0 1 0
0 0 0 0 0 0 0
0 0 1 0 1 0 0
1 0 0 1 0 1 0
0 0 1 0 1 0 0
1 0 0 1 0 1 0
0 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

我的目标是将其显示为(并显示)如下(可以是彩色的):

1 1 1 0 0 0 0
1 1 1 0 0 0 0
1 1 1 0 0 0 0
0 0 0 1 1 0 …
Run Code Online (Sandbox Code Playgroud)

r cluster-analysis binary-matrix

5
推荐指数
1
解决办法
1813
查看次数

生成二进制矩阵的算法

给定两个输入数组[R1,...,Rn]和[C1,...,Cn].我们想要创建二进制矩阵A(大小为nxn),使得A的列i中的元素之和为Ci,并且A的行j中的元素之和为Rj.

我尝试使用贪婪算法填充:从左到右填充1并递减Ci,并为每行执行此操作.但是,它没有用.(另外,我尝试按递减顺序对行和列进行排序,但仍然无效)

algorithm greedy binary-matrix

4
推荐指数
1
解决办法
593
查看次数

给定一个按行排序的布尔矩阵.返回最大数为1的行

我遇到了Matrices的一个问题,但我正试图找出最佳解决方案.问题陈述是问题主题本身.进一步见下文

Example
Input matrix

  0 1 1 1
  0 0 1 1
  1 1 1 1  // this row has maximum 1s
  0 0 0 0

Output: 2
Run Code Online (Sandbox Code Playgroud)

我的解决方案:现在,由于行已排序,我想在第一次出现1的每一行中执行二进制搜索,然后计数为1 total number of columns minus index of 1st 1.

这样做会O(m*logn),但我很想知道逻辑是否可以在线性时间内完成.

谢谢!

arrays algorithm binary matrix binary-matrix

3
推荐指数
1
解决办法
679
查看次数

将多类数组投影到二进制矩阵中

我有一个简单numpy的阵列(例如[1,4,2,3,1]),并希望将其投影成一个二进制矩阵,其中所述阵列中的每个值映射到在矩阵的该列的指示符。

例如,这个数组将映射到一个矩阵,如:

[1], => [1,0,0,0],
[4],    [0,0,0,1],
[2],    [0,1,0,0],
[3],    [0,0,1,0],
[1]     [1,0,0,0]
Run Code Online (Sandbox Code Playgroud)

我可以通过迭代和列表推导来做到这一点,但是有没有优雅的 numpy 解决方案?

python numpy matrix binary-matrix

2
推荐指数
1
解决办法
988
查看次数

内存地址重叠两个数组

我正在研究二元矩阵.我的两个数组正在重叠.(我检查了地址).这种情况只发生在少数几种矩阵上.因此我得到错误的结果.我尝试使用new来分配数组,但是当我这样做时会出现分段错误.有没有办法可以避免重叠记忆?我正在使用g ++编译器.

这就是我声明数组的方式

bool A[size0][size0],B[size0][size0],C[size0][size0];
Run Code Online (Sandbox Code Playgroud)

在下一步中,我将所有这些初始化.A和B是操作数,C将保存结果.

我在下一阶段使用自定义乘法算法.这是一个片段

 for(I=0;I<cnm;I++){  
    bool Tab[m][size];
    bool Ctemp[size][size];

    int count=0;
    for(uint i=0;i<pow(2.0,m*1.0);i++){ 
            for(uint j=0;j<n;j++){
                    Tab[i][j]=0;  //Initialize
                    if(i==0){
                            Tab[i][j] = 0;
                    }
                    else{
                      int dec;
                      //h is calculated here
                      dec=gray_map[i-1]^gray_map[i]; //gray_map returns gray code
                      Tab[i][j] = Tab[i-1][j] ^ B[h][j];
                    }
                    ....
                    ....
              }
     }
     .....
     .....
     //Rest of the code
Run Code Online (Sandbox Code Playgroud)

根据我的观察TabC重叠.我通过打印来检查内存地址.它们在第二级的第六次迭代中重叠以进行循环(n = 9,m = 3,大小= 9,cnm = 3).我C之间没有使用过,我只在外循环中使用它.

c++ memory-management binary-matrix

1
推荐指数
1
解决办法
1982
查看次数

Python Pandas:如何从列表列创建二进制矩阵?

我有一个Python Pandas DataFrame,如下所示:

      1
0  a, b
1     c
2     d
3     e
Run Code Online (Sandbox Code Playgroud)

a, b 是代表用户功能列表的字符串

如何将其转换为用户功能的二进制矩阵,如下所示:

     a    b    c    d    e
0    1    1    0    0    0
1    0    0    1    0    0
2    0    0    0    1    0
3    0    0    0    0    1
Run Code Online (Sandbox Code Playgroud)

我看到了一个类似的问题,即用熊猫从一列创建布尔矩阵,但是该列不包含列表项。

我已经尝试过这些方法,有没有办法将两者合并:

pd.get_dummies()

pd.get_dummies(df[1])


   a, b  c  d  e
0     1  0  0  0
1     0  1  0  0
2     0  0  1  0
3     0  0  0  1
Run Code Online (Sandbox Code Playgroud)

df[1].apply(lambda x: pd.Series(x.split())) …

python sparse-matrix dataframe pandas binary-matrix

1
推荐指数
1
解决办法
3240
查看次数