你可以使用pdist2
要做到這一點,但你必須拿到網格座標,計算出的距離,然後重新安排它放回矩陣,所以我就直接計算的距離:
point = [1 1]; % point to calculate distance from
imgRows = 10; % grid size
imgCols = 10;
a = sqrt(([1:imgRows].' - point(1)).^2 + ([1:imgCols] - point(2)).^2);
如果你不使用最新版本的MATLAB(或八度)具有自動廣播的,你需要使用bsxfun
版本而不是:
a = bsxfun(@(x,y) sqrt(x.^2 + y.^2), ([1:imgRows] - point(1)).', ([1:imgCols] - point(2)));
結果:
a =
0.00000 1.00000 2.00000 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000 9.00000
1.00000 1.41421 2.23607 3.16228 4.12311 5.09902 6.08276 7.07107 8.06226 9.05539
2.00000 2.23607 2.82843 3.60555 4.47214 5.38516 6.32456 7.28011 8.24621 9.21954
3.00000 3.16228 3.60555 4.24264 5.00000 5.83095 6.70820 7.61577 8.54400 9.48683
4.00000 4.12311 4.47214 5.00000 5.65685 6.40312 7.21110 8.06226 8.94427 9.84886
5.00000 5.09902 5.38516 5.83095 6.40312 7.07107 7.81025 8.60233 9.43398 10.29563
6.00000 6.08276 6.32456 6.70820 7.21110 7.81025 8.48528 9.21954 10.00000 10.81665
7.00000 7.07107 7.28011 7.61577 8.06226 8.60233 9.21954 9.89949 10.63015 11.40175
8.00000 8.06226 8.24621 8.54400 8.94427 9.43398 10.00000 10.63015 11.31371 12.04159
9.00000 9.05539 9.21954 9.48683 9.84886 10.29563 10.81665 11.40175 12.04159 12.72792
所以,你怎麼建議你要計算10 dimensinal點和2維點之間的距離? – Suever
您在最後一行缺少括號。 – beaker
所以我認爲每個索引[x,y]都有一個值。我只是希望該值與[1,1]的距離。這是否更有意義? – user2305193