矢量元素之间的最大距离让我们假设我们有像计算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