Sparse 3D matrix

Suppose I have a sparse matrix F of order 4 x 4. Now I want to store this sparse matrix in 3d matrix. What is the syntax for this representation. that is I want to assign A(:, :,1) = F. Since F is sparse it is showing an error. But if I assign A(:, :,1) = full(F), then it is working. But in that case F is not sparse. F consists of many zeros. Kindly tell me how to assign a sparse matrix in a 3d matrix.

3 comentarios

KSSV
KSSV el 11 de Jul. de 2018
You need to read about sparse matrix. sparse saves only non-zero values and their respective indices. If you want to assign it into a 3D matrix, obviously you need to use full matrix. You cannot simply assign sparse to a 3D matrix. If you still insist on, you can save sparse into a cell, so that it can save your memory.
Guillaume
Guillaume el 11 de Jul. de 2018
@TR RAO, You've already asked this question a day earlier. No matter how many times you asked, the answer will be the same.
TR RAO
TR RAO el 11 de Jul. de 2018
Sir, Thank You Sir. Yesterday I could not understand after reading sparse matrices. Now I understood.

Iniciar sesión para comentar.

Respuestas (1)

Matt J
Matt J el 11 de Jul. de 2018
Editada: Matt J el 11 de Jul. de 2018

4 votos

You can't hold a normal Matlab 3D array in sparse form, but you can do it with my ndSparse class (Download), as long as you're mindful of the limitations.
Afull=cat(3,eye(4),diag([14,0,0,27])); %example
Afull(2,3,2)=52;
F=sparse(diag([20,0,40,50])); %example
>> A=ndSparse(Afull); A(:,:,1)=F,
A(:,:,1) =
(1,1) 20
(3,3) 40
(4,4) 50
A(:,:,2) =
(1,1) 14
(2,3) 52
(4,4) 27
>> whos A Afull
Name Size Bytes Class Attributes
A 4x4x2 160 ndSparse
Afull 4x4x2 256 double

Categorías

Más información sobre Sparse Matrices en Centro de ayuda y File Exchange.

Preguntada:

el 11 de Jul. de 2018

Comentada:

el 11 de Jul. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by