Updating values in array based on index vector

Hi,
I have a 2D array (with zeros), and I want to update some indexes with 1's. I have a vectors with those indexes (seperatly for X and Y).
I can do a loop for i :Array(x(i),y(i)=1. but I'm looking for something more efficient (Run time is low, but probably I can do without loops)
Doing something like Array( X; Y ) = 1; is not doing what i'm looking for.
Any suggestions?
Thanks in advance :)

 Respuesta aceptada

Mohammad Sami
Mohammad Sami el 28 de Mayo de 2020
One of the ways is to convert your subscript to linear index and then do the assignments.
ind = sub2ind(size(A),x,y);
A(ind) = 1;

2 comentarios

A test case.
A = zeros(10,10);
x = 1:10;
y = 1:10;
ind = sub2ind(size(A),x,y);
A(ind) = 1; % set diagnol to 1
Felix
Felix el 28 de Mayo de 2020
sub2ind did the trick, Thanks!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 28 de Mayo de 2020

Comentada:

el 28 de Mayo de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by