Можно ли использовать bsxfun с разреженными матрицами

Я хочу, чтобы бинарная операция поэлементно применялась к большим логическим векторам. Содержание этих векторов заведомо ложное, поэтому из соображений производительности лучше работать с разреженными матрицами. Если я это сделаю, итоговая матрица неверна.

Пример

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

C = bsxfun(@and,A,B)

В этом случае C равно

 C = 
     0     0     0     0
     0     0     1     1
     0     0     0     0
     0     0     0     0

Если я использую разреженные матрицы, 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

Что, очевидно, неверно.

Наблюдал ли я за чем-то или это ошибка Matlab.

8
задан Shai 12 June 2013 в 09:15
поделиться