How do I create a 2D sparse matrix?
Show older comments
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 Comment
Bruno Luong
on 10 Feb 2011
A (sparse) matrix can contain numerical elements and nothing else. What exactly you want to do?
Accepted Answer
More Answers (2)
Andrew Newell
on 8 Feb 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 Comments
Todd Flanagan
on 8 Feb 2011
Marwa says, "thanks alot"
Todd Flanagan
on 8 Feb 2011
Andrew says, "If you like this answer, could you please accept it?"
James Tursa
on 21 Mar 2011
0 votes
You might take a look at this FEX submission by Matt J:
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!