矢量元素之間的最大距離讓我們假設我們有像計算MATLAB
x = -1:0.05:1;
ids = randperm(length(x));
x = x(ids(1:20));
載體,我想計算一些慣用的方式x
元素之間的最大距離。只需遍歷所有可能的x
元素的組合就很容易,但我覺得可能有一種方法可以用一些瘋狂但慣用的方式使用MATLAB的內置函數來完成。
矢量元素之間的最大距離讓我們假設我們有像計算MATLAB
x = -1:0.05:1;
ids = randperm(length(x));
x = x(ids(1:20));
載體,我想計算一些慣用的方式x
元素之間的最大距離。只需遍歷所有可能的x
元素的組合就很容易,但我覺得可能有一種方法可以用一些瘋狂但慣用的方式使用MATLAB的內置函數來完成。
什麼
max_dist = max(x) - min(x)
?
呃......很想有我的手一MATLAB和它的早晨,但對於像還早:
max_dist = max(x(2:end) - x(1:end-1));
我不知道這是你在找什麼對於。
你的意思是你矢量中最大和最小元素的區別?如果你這樣做,那麼這樣的事情會工作:
max(x) - min(x)
如果你不這樣做,那麼我誤解了這個問題。
這是一個點間距離計算,儘管很簡單,因爲你在一個維度上工作。真的那個在一個維度上落在最大距離的點總是兩個可能的點之一。所以你所需要做的就是從列表中獲取最小值和最大值,並且看看哪一個更遠離問題點。因此,假設X中的數字是實數,這將工作:
xmin = min(x);
xmax = max(x);
maxdistance = max(x - xmin,xmax - x);
作爲替代,前一段時間我把一個普通INTERPOINT距離計算工具上來就文件交換(IPDM)。對於特殊情況下的簡單問題,如1-d最遠點問題,這足夠聰明。該調用會爲你做它:
D = ipdm(x,'subset','farthest','result','struct');
當然,它不會像簡單的代碼,我上面寫的那樣有效,因爲它是一個完全通用的工具。
這將計算後續元素之間的最大距離。我寧願擁有所有可能的組合。 – lhahne 2010-03-16 08:02:07