MATLAB: Sparse Matrix, struct, structure, Using cell arrays

sparse matrixstructstructureusing cell arrays

A sparse matrix is a large Matrix with almost all elements of the same value (typically zero). The normal representation of a spark Matrix takes up lots of memory when useful information can be captured with much less. A possible way to represent a sparse matrix is with a cell vector whose first element is a 2-element vector representing the size of the sparse matrix. The second element is a scalar specifying the default value of the sparse matrix. Each successive element of the cell vector is a 3-element vector representing one element of sparse matrix that has a value other than default. The three elements row index, the column index and the actual value. Write a function called sparse2matrix that takes a single input of a cell vector as defined above and returns the output argument called matrix, the matrix in its traditional form. Consider the following run:
cellvec = {[2 3], 0, [1 2 3], [2 2 -3]};
matrix = sparse2matrix(cellvec)
matrix =
0 3 0
0 -3 0

Best Answer

function matrix=sparse2matrix(cellvec)
matrix=cellvec{1,2}*ones(cellvec{1,1});
[m n]=size(cellvec);
for i=3:n
A=cellvec{1,i};
p=A(1);
q=A(2);
matrix(p,q)=A(3);
end
end
Related Question