How do I create a 2D sparse matrix?

8 Ansichten (letzte 30 Tage)
Marwa Helemish
Marwa Helemish am 8 Feb. 2011
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
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
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.


James Tursa
James Tursa am 21 Mär. 2011

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by