MATLAB Answers

Updating values in array based on index vector

5 views (last 30 days)
Felix on 28 May 2020
Commented: Felix on 28 May 2020
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 :)


Sign in to comment.

Accepted Answer

Mohammad Sami
Mohammad Sami on 28 May 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;


Mohammad Sami
Mohammad Sami on 28 May 2020
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

Sign in to comment.

More Answers (0)