How to assign values to a sparse matrix without iterations?

8 Ansichten (letzte 30 Tage)
Benson Gou
Benson Gou am 9 Okt. 2018
Kommentiert: dpb am 11 Okt. 2018
Hi, All,
I want to assign non-zero values to a matrix H. I know the locations of all the non-zeros. For example, I know the non-zero locations:
It indicates H(1,1)=1;H(1,2)=1;H(2,1)=1;H(2,5)=1;H(3,2)=1;H(3,3)=1;...
Would you please tell me how I can quickly assign this values without iterations?
Thanks a lot. Bei

Akzeptierte Antwort

Adam
Adam am 9 Okt. 2018
i = repmat( 1:size( Nonloc ), [1 2] );
j = Nonloc(:)
s = sparse( i, j, 1 );
  1 Kommentar
Benson Gou
Benson Gou am 10 Okt. 2018
Dear Adam,
Thanks a lot for your excellent code. It works very well.
Best regards, Bei

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

dpb
dpb am 9 Okt. 2018
S=sparse(Nonloc(:,1),Nonloc(:,2),1);
  6 Kommentare
Benson Gou
Benson Gou am 11 Okt. 2018
Hi, dab and Bruno,
Thanks for your comments. I think dab's code gives one "1" in each row while Adam gives two "1" in each row which is expected.
Thanks a lot again. Bei
dpb
dpb am 11 Okt. 2018
Ah! The light finally dawneth...the row isn't given but implied.

Melden Sie sich an, um zu kommentieren.

Kategorien

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

Community Treasure Hunt

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

Start Hunting!

Translated by