Sparse Matrix, struct, structure, Using cell arrays

조회 수: 9 (최근 30일)
Abhishek Gupta
Abhishek Gupta 2020년 10월 30일
답변: Abhishek Gupta 2020년 10월 30일
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

채택된 답변

Abhishek Gupta
Abhishek Gupta 2020년 10월 30일
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

추가 답변 (1개)

Aramis
Aramis 2024년 5월 7일
function matrix = sparse2matrix(cellvec)
matrix = ones(cellvec{1}) * cellvec{2};
for x=3:length(cellvec)
matrix(cellvec{x}(1),cellvec{x}(2)) = cellvec{x}(3);
end
end

카테고리

Help CenterFile Exchange에서 Structures에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by