How do I create a 2D sparse matrix?

Hallo, When I want to creat a sparse matrix, and and according to the i verctor( index) the element must be equal =1
say i=[6 12 18 24 19 13 7 1]; A=sparse(i,i,ones(1,8)); then I have A =
(1,1) 1
(6,6) 1
(7,7) 1
(12,12) 1
(13,13) 1
(18,18) 1
(19,19) 1
(24,24) 1
Now:I want to creat a A 2D sparse matrix with vector i, but with every element are a 2D matrix 3x3 for exmaple A(1,1) is 2D matrix of dimension 3x3=[1 0 0;0 1 0; 0 0 1]; thank you in advance

1 comentario

Bruno Luong
Bruno Luong el 10 de Feb. de 2011
A (sparse) matrix can contain numerical elements and nothing else. What exactly you want to do?

Iniciar sesión para comentar.

 Respuesta aceptada

Marwa Helemish
Marwa Helemish el 10 de Feb. de 2011

0 votos

sorry Andrew,i canot accept it because , it is not want I mean. Many thanks again

1 comentario

Andrew Newell
Andrew Newell el 10 de Feb. de 2011
Then what do you mean? I suggest editing your original question to clarify it.

Iniciar sesión para comentar.

Más respuestas (2)

Andrew Newell
Andrew Newell el 8 de Feb. de 2011
Here is how you would do it for your example:
N = 6; % I assume this is a square matrix?
A = zeros(3,3,N^2);
A3 = eye(3);
indexList = [6 12 18 24 19 13 7 1];
for i=indexList
A(:,:,i) = A3;
end
A = num2cell(A,[1 2]);
A = reshape(A,N,N);
A = sparse(cell2mat(A));
EDIT: If you're really after a sparse cell array of matrices, try looking at Sparse cell arrays.

2 comentarios

Todd Flanagan
Todd Flanagan el 8 de Feb. de 2011
Marwa says, "thanks alot"
Todd Flanagan
Todd Flanagan el 8 de Feb. de 2011
Andrew says, "If you like this answer, could you please accept it?"

Iniciar sesión para comentar.

Categorías

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

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by