# How to find indices of value that are greater than zero and less than 5

97 views (last 30 days)

Show older comments

I want to find the indices of a matrix and I am using this command.

if true

nhd = find(dist_mat1>0 & dist_mat1<6);

end

It is giving me a single column matrix. Is it possible that it can find the indices of all elements from first row, then second and then third. so that I have output variable index has three rows and each value in row shows the column number only.

like nhd = [1,3,4,7;1,2,3,6,7;1,4]

Is it possible ?

##### 0 Comments

### Accepted Answer

Star Strider
on 15 Feb 2016

This works:

dist_mat1 = randi([0 7], 3, 7); % Create Matrix

[RowNrs,ColNrs] = find(dist_mat1>0 & dist_mat1<6);

[RowNrSort, Idx] = sort(RowNrs);

for k1 = 1:max(RowNrs)

Out{k1} = ColNrs(Idx(RowNrSort == k1));

end

##### 4 Comments

Star Strider
on 15 Feb 2016

I am not quite certain what you want to do.

The unique function — possibly with more than one output — could be an option.

Image Analyst
on 16 Feb 2016

### More Answers (0)

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!