How do I create a 2D sparse matrix?

10 views (last 30 days)
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
Bruno Luong on 10 Feb 2011
A (sparse) matrix can contain numerical elements and nothing else. What exactly you want to do?

Sign in to comment.

Accepted Answer

Marwa Helemish
Marwa Helemish on 10 Feb 2011
sorry Andrew,i canot accept it because , it is not want I mean. Many thanks again
  1 Comment
Andrew Newell
Andrew Newell on 10 Feb 2011
Then what do you mean? I suggest editing your original question to clarify it.

Sign in to comment.

More Answers (2)

Andrew Newell
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));
EDIT: If you're really after a sparse cell array of matrices, try looking at Sparse cell arrays.
  2 Comments
Todd Flanagan
Todd Flanagan on 8 Feb 2011
Marwa says, "thanks alot"
Todd Flanagan
Todd Flanagan on 8 Feb 2011
Andrew says, "If you like this answer, could you please accept it?"

Sign in to comment.


James Tursa
James Tursa on 21 Mar 2011

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!