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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Marwa Helemish
Marwa Helemish am 10 Feb. 2011

0 Stimmen

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

1 Kommentar

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Andrew Newell
Andrew Newell am 8 Feb. 2011

1 Stimme

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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by