Find indices of the lowest neighbour in matrix

2 Ansichten (letzte 30 Tage)
Morten Jørgensen
Morten Jørgensen am 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

Antworten (1)

Vinai Datta Thatiparthi
Vinai Datta Thatiparthi am 3 Feb. 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!

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by