The SparseMatrixCSC type is immutable, which I understand to mean that I 
must respect the types of the attributes of SparseMatrixCSC types, as well 
as not changing the attributes themselves. 

The following gives a loadError (type is immutable). I am confused that I 
can modify the colptr and rowval attributes of A, but not the A.n 
attribute. Why is this? I am trying to change the size of a sparse matrix 
after removing the data from a row and column.

I have checked that both A.n and A.n - 1 are type Int.

function rmCol(A::SparseMatrixCSC, rmCol::Int)
    colRmRange = A.colptr[rmCol]:(A.colptr[rmCol+1]-1)
    filter!(e -> e != rmCol, A.colptr)
    
    deleteat!(A.rowval, rowval[colRmRange])
    deleteat!(A.nzval, colRmRange)
    A.n -= 1 # inclusion of this line throws error
    
end

Reply via email to