sparse matrix index shifting (a bug?)
古いコメントを表示
If we run the following code:
la = sparse(ceil(5*rand(1,100)), 1:100, true, 5, 100);
lb = sparse(ones(1,20), 1:20, true, 1, 100);
lb = lb(randperm(100)); % if remove this line, everything is fine
ra = double(bsxfun(@and, la, lb));
disp(sum(sum(ra)));
rb = double(bsxfun(@and, la, full(lb)));
disp(sum(sum(rb)));
the output would be:
(1,1) 98
(1,1) 20
The outputs should be the same since the function full does not change the content of lb, but matlab gives different results in both version 2010a and 2011b (I have only tested in these two versions). It seems that the inconsistency comes from the index shifting operation in line 3. If line 3 is removed, everything becomes fine. Is there any explanation about this? or did I miss something?
Thank you very much.
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Sparse Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!