所以我想知道在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.5之前发生的0.1的位置。 我尝试使用find(x,0.5,'last'),但这并没有多大帮助,因为我想找到0.1。我想也许可以创造另一个以0.5结束的向量,然后搜索最后的0.1,但由于我的向量包含~300个事件,因此效率低下。
答案 0 :(得分:2)
如果您希望.5立即出现在.1
之后,您可以试试这个idx = [x(1:end-1)==0.1 & x(2:end)== 0.5 false]
生成逻辑索引,对于数字索引,您可以使用
find(idx)
更新: 找到所有.1 s后面有.5但没有任何.1出现在.1和.5
之间f= find(x==.1 | x==.5)
f(x(f(1:end-1)) < x(f(2:end)))