How do I create a 2D sparse matrix?

10 ビュー (過去 30 日間)
Marwa Helemish
Marwa Helemish 2011 年 2 月 8 日
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 件のコメント
Bruno Luong
Bruno Luong 2011 年 2 月 10 日
A (sparse) matrix can contain numerical elements and nothing else. What exactly you want to do?

サインインしてコメントする。

採用された回答

Marwa Helemish
Marwa Helemish 2011 年 2 月 10 日
sorry Andrew,i canot accept it because , it is not want I mean. Many thanks again
  1 件のコメント
Andrew Newell
Andrew Newell 2011 年 2 月 10 日
Then what do you mean? I suggest editing your original question to clarify it.

サインインしてコメントする。

その他の回答 (2 件)

Andrew Newell
Andrew Newell 2011 年 2 月 8 日
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 件のコメント
Todd Flanagan
Todd Flanagan 2011 年 2 月 8 日
Marwa says, "thanks alot"
Todd Flanagan
Todd Flanagan 2011 年 2 月 8 日
Andrew says, "If you like this answer, could you please accept it?"

サインインしてコメントする。


James Tursa
James Tursa 2011 年 3 月 21 日

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by