https://github.com/JuliaLang/julia/pull/12608
On Wednesday, February 24, 2016 at 3:21:59 PM UTC+1, Christoph Ortner wrote: > > Can you post a link to that pull request? > Thanks, Christoph > > On Wednesday, 24 February 2016 04:26:35 UTC, Tony Kelman wrote: >> >> It is possible to store explicit zero values in sparse matrices, but not >> via the sparse() function at the moment. You currently have to construct a >> sparse matrix with the desired structure of stored elements, then modify >> the field values of Mat.nzval to explicitly set some of them to zero. >> There's an open pull request that will change this, I think the only thing >> we were waiting for before merging was some performance benchmarking of >> packages that heavily utilize the sparse() function. >> >> >> On Tuesday, February 23, 2016 at 2:58:44 PM UTC-8, Yankai Cao wrote: >>> >>> Hi, Stefan, >>> >>> Thanks for your reply. For my application, the structure of the matrix >>> is fixed, but the values of some elements might become zero from iteration >>> to iteration. Is it possible to keep the position of elements whose values >>> is zero? >>> For example: >>> I=[1;1;2] >>> J=[1;1;2] >>> V=[1.0;0.0;0.0] >>> Mat=sparse(I,J,V,2,2) >>> >>> what I get is >>> [1,1]=1 >>> >>> is it possible to get the following? >>> [ 1, 1] = 1.0 >>> [2, 2] = 0.0 >>> >>> >>> Thanks. >>> >>> >>> >>> Yankai >>> >>> >>> >>> On Tuesday, February 23, 2016 at 4:50:07 PM UTC-6, Stefan Karpinski >>> wrote: >>>> >>>> You can't have two values at the same row and column, which is what the >>>> first two lines of this output would indicate: >>>> >>>> [1, 1] = 1.0 >>>> [1, 1] = 1.0 >>>> [2, 2] = 1.0 >>>> >>>> >>>> Since the indices (1,1) appear twice the associated values are added, >>>> giving 2.0. >>>> >>>> On Tue, Feb 23, 2016 at 5:03 PM, Yankai Cao <[email protected]> wrote: >>>> >>>>> I am new to Julia. I have 2 questions about constructting sparse >>>>> matrix from arrays. >>>>> >>>>> 1. >>>>> I=[1;1;2] >>>>> J=[1;1;2] >>>>> V=[1.0;1.0;1.0] >>>>> Mat=sparse(I,J,V,2,2) >>>>> >>>>> According to the Julia guide "If the combine function is not >>>>> supplied, duplicates are added by default." I expect Mat to be >>>>> [ 1, 1] =1.0 >>>>> [ 1, 1] = 1.0 >>>>> [2, 2] = 1.0 >>>>> >>>>> however, what I get is >>>>> [1,1]=2 >>>>> [2,2]=1 >>>>> >>>>> So what is the default behavior without combine function? How do I >>>>> specify the combine function? There is no instructions about it right now. >>>>> >>>>> 2. when i change V=[1.0;0.0;0.0]. I expected >>>>> [ 1, 1] = 1.0 >>>>> [2, 2] = 0 >>>>> >>>>> what I get is >>>>> [1,1]=1 >>>>> >>>>> How can I let julia to combine elements only according to the indexes >>>>> I, J ? How to keep those elements with value 0 ? >>>>> >>>>> >>>>> Thanks in advance. >>>>> >>>>> >>>>> Yankai >>>>> >>>>> >>>>> >>>>> >>>>> >>>>
