假設已知n個點的x和y, 建立兩個向量:
X = [x1 x2 ... xn];
Y = [y1 y2 ... yn];
要計算這些點到點(p_x, p_y)的距離,找到離它最近的點,程式碼如下:
d = sqrt((X-p_x).^2 + (Y-p_y).^2); %計算每一個點到指定電的距離,d = [d1 d2 ... dn];
data = [X" Y" d"]; %構建一個表格,第一列為X, 第二列為Y, 第三列為各點到指定點的距離
sel = data(data(:,3)==min(data(:,3)),:); %找出表格中距離最小的點, sel的第一列為這些點的x, 第二列為y, 第三列為距離。
最後兩步主要是為了防止有幾個點到指定點距離一樣的情況。如果不可能有這種情況那麼程式碼可以簡化為:
[d_min i] = min(d); x_min = X(i), y_min = Y(i); %x_min, y_min為要找的點,d_min為最小距離
假設已知n個點的x和y, 建立兩個向量:
X = [x1 x2 ... xn];
Y = [y1 y2 ... yn];
要計算這些點到點(p_x, p_y)的距離,找到離它最近的點,程式碼如下:
d = sqrt((X-p_x).^2 + (Y-p_y).^2); %計算每一個點到指定電的距離,d = [d1 d2 ... dn];
data = [X" Y" d"]; %構建一個表格,第一列為X, 第二列為Y, 第三列為各點到指定點的距離
sel = data(data(:,3)==min(data(:,3)),:); %找出表格中距離最小的點, sel的第一列為這些點的x, 第二列為y, 第三列為距離。
最後兩步主要是為了防止有幾個點到指定點距離一樣的情況。如果不可能有這種情況那麼程式碼可以簡化為:
[d_min i] = min(d); x_min = X(i), y_min = Y(i); %x_min, y_min為要找的點,d_min為最小距離