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 个评论

A (sparse) matrix can contain numerical elements and nothing else. What exactly you want to do?

请先登录,再进行评论。

 采纳的回答

Marwa Helemish
Marwa Helemish 2011-2-10

0 个投票

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

1 个评论

Then what do you mean? I suggest editing your original question to clarify it.

请先登录,再进行评论。

更多回答(2 个)

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 个评论

Marwa says, "thanks alot"
Andrew says, "If you like this answer, could you please accept it?"

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by