所以我想知道matlab中一个事件何时发生在另一个事件之前;我所说的事件是指数字。例如,我有一个向量,假设:
x = [0.3 0.3 0.1 0.2 0.5 0.1 0.3 0.1 0.5 0.1 0.4 0.5]
我想知道 0.1 发生在 0.5 之前的位置。 我尝试使用 find(x,0.5,'last') 但这并没有多大帮助,因为我想找到 0.1。我考虑过创建另一个以 0.5 结尾的向量,然后搜索最后一个 0.1,但这效率很低,因为我的向量包含约 300 个事件。
最佳答案
如果您希望 .5 立即出现在 .1 之后,您可以尝试此操作
idx = [x(1:end-1)==0.1 & x(2:end)== 0.5 false]
生成逻辑索引,对于数字索引,您可以使用
find(idx)
更新: 查找所有后面有 .5 的 .1 ,且 .1 和 .5 之间不出现任何 .1
f= find(x==.1 | x==.5)
f(x(f(1:end-1)) < x(f(2:end)))
关于matlab - 在向量上查找另一个特定数字之前的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40917167/