Effacer les filtres
Effacer les filtres

Replace arrays of a matrix with a vector

1 vue (au cours des 30 derniers jours)
amin
amin le 4 Fév 2020
Commenté : amin le 4 Fév 2020
Hi,
I have a matrice R like :
R=zeros(3);
I need to change 3 array of R:
c=[1 1;3 2;1 2];
with new values in this vector:
Newvalue=[ 3 7 9];
So the final result is :
R=[3 9 0;0 0 0;0 7 0]
I know that I can do it easily with a For loop to check every element and replace new value.
But I want to vectorize this, i.e. with no loop.

Réponse acceptée

KSSV
KSSV le 4 Fév 2020
Modifié(e) : KSSV le 4 Fév 2020
Read about sub2ind.
R=zeros(3);
c=[1 1;3 2;1 2];
Newvalue=[ 3 7 9];
% get global indices
idx = sub2ind(size(R),c(:,1),c(:,2)) ;
R(idx) = Newvalue
  1 commentaire
amin
amin le 4 Fév 2020
Thank you so much, it is exacly what I was looking for.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by