【发布时间】:2014-09-17 04:05:09
【问题描述】:
我试图找到一个 1xn 向量的两个最小元素。问题是我无法对其进行排序,因为索引线性依赖于值(因此对值进行排序会导致原始索引)并且 0 可以是元素之一。此外,元素可以重复。这是我的代码的简化示例:
a = [1,5,8,7,1];
find(a==min(a))
ans =
1 5
对于a,这是我所期待的答案。
b = [0,8,6,1,9];
find(b==min(b))
ans =
1
对于 b,我需要它来找到 0 和 1,因此它应该分别返回 1 和 4 作为索引。提前致谢!
【问题讨论】:
-
关于搞砸原始索引:假设在你的向量
a旁边有一个时间向量t = [1,2,3,4,5]。如果你这样做,你可以用同样的方式排序:[~, idx] = sort(a)。现在执行[t(idx)', a(idx)']会给你一个表格,其中包含新排序的t和a。 -
您期望
[0 1 1 2 3 4]的输出是什么?