Azzera filtri
Azzera filtri

How to assign values to a sparse matrix without iterations?

5 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

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

Accedi per commentare.

Più risposte (1)

dpb
dpb il 9 Ott 2018
S=sparse(Nonloc(:,1),Nonloc(:,2),1);
  6 Commenti
Benson Gou
Benson Gou il 11 Ott 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 il 11 Ott 2018
Ah! The light finally dawneth...the row isn't given but implied.

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by