MATLAB Answers

0

Selection of Matrix Elements without for loop

Hi.
I have a matrix of cooardinates like this :
A = [1 3;2 4;7 9];
And a Matrix 9x9:
B = rand(9);
How can I select B's elements in A cooardinest (for example : B(1,3) & B(2,4) & B(7,9)) without using a for loop.
Assuming that in my original code A has too many rows, ( more than 10K) and B is an image with too many points either.
As a matter of fact, I have some pixels' coordinates, and want to just update their's value in the original image by some formula. But I don't want to use for loop for selecting each pixel.

  0 Comments

Sign in to comment.

1 Answer

Answer by madhan ravi
on 5 Jun 2019
 Accepted Answer

B(sub2ind(size(B),A(:,1),A(:,2)))

  1 Comment

Thanks, It worked.
My mistake was that I tried B(A), i didn't know the usage of sub2ind.

Sign in to comment.