Asked by bayesianguy
on 14 Jun 2019

I have the row and column indices of a rectangular region of interest in a rectangular image. How can i get the linear indices from these row and column indices?

%this works

a = rand(5,5); %changed.

row_indices = 1:5;

col_indices = 1:5;

[X,Y] = meshgrid(row_indices,col_indices);

indices = sub2ind(size(a), Y, X)

%i want the indices when rows and cols are not necessarily of same length.

a = rand(5,3); %changed

row_indices = 1:5;

col_indices = 1:3;

[X,Y] = meshgrid(row_indices,col_indices);

indices = sub2ind(size(a), Y, X) %this would give out of range subscript.

Answer by Star Strider
on 16 Jun 2019 at 22:51

Accepted Answer

You need to reverse the order of the second and third arguments to sub2ind:

indices = sub2ind(size(a), X(:), Y(:)) %this would give out of range subscript.

and ideally make them column vectors, using the (:) subscript notation.

Note that ndgrid may be preferable to meshgrid.

bayesianguy
on 17 Jun 2019 at 4:32

It works neatly with ndgrid than meshgrid.

The vectorized input was the key. Thanks a lot.

Star Strider
on 17 Jun 2019 at 11:14

As always, my pleasure.

Sign in to comment.

Answer by KSSV
on 14 Jun 2019

Edited by KSSV
on 14 Jun 2019

YOu need to consider the size of matrix a.

%this works

a = rand(5,5);

row_indices = 1:5;

col_indices = 1:5;

[X,Y] = meshgrid(row_indices,col_indices);

indices = sub2ind(size(a), Y, X)

%i want the indices when rows and cols are not necessarily of same length.

row_indices = 1:5;

col_indices = 1:3;

a = rand(3,5) ;

[X,Y] = meshgrid(row_indices,col_indices);

indices = sub2ind(size(a), Y, X) %this would give out of range subscript.

bayesianguy
on 16 Jun 2019 at 22:36

I have made a mistake in the code snippet.

When the size of matrix is 5 x 5, the row and column indices going from 1:5 can create a nice grid which works with sub2ind.

However, when i have a rectangular matrix of size 5 x 3, the grid elements are going to have elements like (5,5) which is out of range.

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 1 Comment

## bayesianguy (view profile)

Direct link to this comment:https://in.mathworks.com/matlabcentral/answers/467039-linear-indices-from-row-and-column-indices-for-a-rectangular-region-of-interest#comment_715315

Sign in to comment.