我有一个名为 x 的坐标向量。我想获取具有最小 y 坐标的元素:
a = find(x(:,2)==min(x(:,2))); % Contains indices
这将返回 y 坐标最小的元素的索引。我说 element* s * 因为有时这会返回超过 1 个值(例如 (10,2) 和 (24,2) 都有 2 作为 y 坐标,如果 2 是最小 y 坐标...)。
无论如何,我的下一步是根据 x 坐标对具有最小 y 坐标的元素进行排序(升序)。首先我这样做:
b = sort(x(a,1));
上述操作可能会重新排列具有最小 y 坐标的元素,因此我也想将此重新排列应用于 a 。所以我这样做:
[v i] = ismember(b, x(:, 1));
不幸的是,如果存在具有相同 x 值但不同 y 值的元素,并且其中一个元素结果是 a(即 b)的成员,则上述矩阵选择它。例如,如果 (10,2) 和 (24,2) 是 y 坐标最小的元素,并且有第三个元素 (24, 13),那么它将搞砸上述操作。有没有更好的办法?我使用循环编写了我的脚本,一切都很好,但根据 Matlab 的方法我重写了它,我担心我对 matlab 的不熟悉会导致这个错误。