Find indices of the lowest neighbour in matrix

2 vues (au cours des 30 derniers jours)
Morten Jørgensen
Morten Jørgensen le 29 Jan 2020
I'm trying to find the indices of the lowest value of three neighbours (red in picture below) for backtracking a path in a matrix
i = 331
j = end
[x y] = min([cost(end-1,j-1) cost(end,j-1) cost(end-1,j)])
Screenshot 2020-01-29 at 11.48.50.png
Can anyone help me with this?
thanks

Réponses (1)

Vinai Datta Thatiparthi
Vinai Datta Thatiparthi le 3 Fév 2020
Hello Morten,
Use a combination of find and min functions to get the output -
matVal = [ .. ]; % Enter your input matrix here
% Enter the coordinates for the value of which you want to find the least neighbour of
xCoOrd = .. ;
yCoOrd = .. ;
% Find out all the neighbours of the element that you picked
convOut = conv2(double(I==I(xCoOrd, yCoOrd)), ones(3,3), 'same');
idx = find(convOut - double(I==I(xCoOrd, yCoOrd)));
% The index of the least neighbour
leastNeighbourIdx = find(I == min(I(idx)));
Use ind2sub function on the variable leastNeighbourIdx to get the answer in subscripts.
Hope this helps!

Catégories

En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by