MATLAB: Kron on distributed arrays

distributedkronMATLABsparse

Hi everyone, I need to perform Kronecker products on (sparse) distributed arrays however the kron function is unfortunately not handled. I tried to edit the Matlab function and it appears that only the last line:
K = sparse(ik,jk,bsxfun(@times,sb,sa.'),ma*mb,na*nb);
produces an issue within an spdm loop
Any clue about how to overcome this? The error message is:
Error detected on lab(s) 1 2.
Caused by:
Error using codistributed/sparse>iCallSparseImpl (line 122)
Operands to the || and && operators must be convertible to logical scalar values.
Operands to the || and && operators must be convertible to logical scalar values.
Error using codistributed/sparse>iCallSparseImpl (line 122)
Operands to the || and && operators must be convertible to logical scalar values.
Operands to the || and && operators must be convertible to logical scalar values.
Thanks in advance

Best Answer

The following code seems to work like a charm producing a distributed output:
S = speye(10);
S = distributed(S);
[i,j,s] = find(S);
[m,n] = size(S);
S = sparse(i,j,s,m,n);
whos
While this one (from kron function) doesn't:
A=speye(10);
B=speye(10);
A=distributed(A);
B=distributed(B);
[ma,na] = size(A);
[mb,nb] = size(B);
[ia,ja,sa] = find(A);
[ib,jb,sb] = find(B);
ia = ia(:); ja = ja(:); sa = sa(:);
ib = ib(:); jb = jb(:); sb = sb(:);
ik = bsxfun(@plus, mb*(ia-1).', ib);
jk = bsxfun(@plus, nb*(ja-1).', jb);
sk = bsxfun(@times,sb,sa.');
whos
K = sparse(ik,jk,sk,ma*mb,na*nb);
Altough the inputs to sparse in both case are of the same nature somethiong I'm really missing here.