I am interested in updating the values of the sparse matrix. I have a list of matrix element which I am interested in updating and a list of new values. Currently, I do it in the following manner:
s = SparseArray[{{i_, i_} -> i}, {100, 100}];
newP = RandomInteger[{1, 100}, {5, 2}];
newV = RandomReal[1, {5}];
MapThread[(s[[#1[[1]], #1[[2]]]] = #2) &, {newP, newV}]
Any suggestions on how to do it more efficiently?
Module[{nzp = Join[newP, s["NonzeroPositions"]], nzv = Join[newV, s["NonzeroValues"]]}, SparseArray[nzp->nzv, Dimensions[s]]]seems to be faster. – kglr Aug 01 '18 at 09:23