Replace arrays of a matrix with a vector

5 visualizaciones (últimos 30 días)
amin
amin el 4 de Feb. de 2020
Comentada: amin el 4 de Feb. de 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.

Respuesta aceptada

KSSV
KSSV el 4 de Feb. de 2020
Editada: KSSV el 4 de Feb. de 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 comentario
amin
amin el 4 de Feb. de 2020
Thank you so much, it is exacly what I was looking for.

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by