closest index in matrix between two values
Ältere Kommentare anzeigen
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
Akzeptierte Antwort
Weitere Antworten (2)
José-Luis
am 8 Jul. 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
am 8 Jul. 2016
z = bwdist(X == 2).*(X == 0);
[ii,jj] = find(z == min(z(z~=0)));
2 Kommentare
Stephen23
am 8 Jul. 2016
Note: requires the Image Processing Toolbox.
Andrei Bobrov
am 8 Jul. 2016
Hi Stephen! MATLAB without Image... whot is it? :)
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!