小编Tob*_*Heß的帖子

bsxfun是否可用于稀疏矩阵

我希望逐元素二元运算适用于大型逻辑向量.这些向量的内容是男子气概,因此出于性能考虑,最好使用稀疏矩阵.如果我这样做,结果矩阵是不正确的.

Examble

A = logical([0;1;0;0]);
B = logical([0 0 1 1]);

C = bsxfun(@and,A,B)
Run Code Online (Sandbox Code Playgroud)

在这种情况下C是

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

如果我使用稀疏矩阵C是

 C = full(bsxfun(@and,sparse(A),sparse(B)))
 C = 
     0     0     0     0
     1     1     1     1
     0     0     0     0
     0     0     0     0
Run Code Online (Sandbox Code Playgroud)

这显然是错的.

我是否监督某事或这是一个Matlab错误.

matlab sparse-matrix bsxfun

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

标签 统计

bsxfun ×1

matlab ×1

sparse-matrix ×1