How do I create a 2D sparse matrix?
Afficher commentaires plus anciens
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 commentaire
Bruno Luong
le 10 Fév 2011
A (sparse) matrix can contain numerical elements and nothing else. What exactly you want to do?
Réponse acceptée
Plus de réponses (2)
Andrew Newell
le 8 Fév 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));
2 commentaires
Todd Flanagan
le 8 Fév 2011
Marwa says, "thanks alot"
Todd Flanagan
le 8 Fév 2011
Andrew says, "If you like this answer, could you please accept it?"
James Tursa
le 21 Mar 2011
0 votes
You might take a look at this FEX submission by Matt J:
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!