closest index in matrix between two values
Afficher commentaires plus anciens
hello, i have 2d matrix for example:
X = [0 0 0 0 0;
1 1 1 1 1;
0 1 2 1 0;
1 1 1 1 1;
0 0 0 0 0]
i want to get closest index of columns and rows between value 2 and 0. Is there any chance to do this??
Regards
Réponse acceptée
Plus de réponses (2)
José-Luis
le 8 Juil 2016
X = [0 0 0 0 0;
1 1 1 1 1;
0 1 2 1 0;
1 1 1 1 1;
0 0 0 0 0];
[tx,ty] = find(X==2);
x_dist = abs(tx-(1:size(X,1)));
y_dist = abs(ty-(1:size(X,2)))';
dist_array = bsxfun(@plus,x_dist.^2,y_dist.^2);
[ix,iy] = find(dist_array == min(dist_array(X==0)))
Andrei Bobrov
le 8 Juil 2016
z = bwdist(X == 2).*(X == 0);
[ii,jj] = find(z == min(z(z~=0)));
2 commentaires
Stephen23
le 8 Juil 2016
Note: requires the Image Processing Toolbox.
Andrei Bobrov
le 8 Juil 2016
Hi Stephen! MATLAB without Image... whot is it? :)
Catégories
En savoir plus sur Resizing and Reshaping Matrices dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!