finding distance within a range of distance
Ältere Kommentare anzeigen
[EDIT: 20110524 01:36 CDT - reformat, clarify - WDR]
Hi I have a matrix as follows.
I =
1 1 5 1 1 1 8
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 5 2 1 1 1
1 1 1 1 1 5 1
1 1 1 1 1 1 1
I need to know whether distances of value 5 with another 5 are in the range 3. Thanks in advance
Akzeptierte Antwort
Weitere Antworten (1)
Wolfgang Schwanghart
am 23 Mai 2011
How about
[X,Y] = meshgrid(1:size(I,2),1:size(I,1));
ix = find(I == 5);
d = hypot(bsxfun(@minus,X(ix),X(ix)'),bsxfun(@minus,Y(ix),Y(ix)'));
[ixd,cc] = find(d<=3 & d>0);
II = false(size(I));
II(ix(ixd)) = true;
Cheers, W.
2 Kommentare
Mohammad Golam Kibria
am 24 Mai 2011
Walter Roberson
am 24 Mai 2011
Wolfgang's output matrix II has a 1 in each position at which there was originally a 5 that was within a distance of 3 of another 5.
If that output is not what you wanted, then you need to specify the form of the output that you did want.
Kategorien
Mehr zu String Parsing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!