matlab - 在向量上查找另一个特定数字之前的数字

标签 matlab vector find position

所以我想知道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/

相关文章:

c++ - find() 函数对于集合有效吗?

matlab - 如何在 MATLAB 中跟踪函数调用?

linux - Matlab 命令窗口选项卡(选项卡式)

java - iText PDF 中的 vector 图形

c++ - 如何知道 vector 的正确最大大小?最大大小()?但不是

unix - 在 Unix 上匹配文件中的日期

通过 exec 对 find 的输出进行 Bash 变量替换

algorithm - 计算matlab中大量位置成对距离的有效算法

string - 在 Matlab 中将字符串中每个单词的首字母大写/大写?

C++ vector 运算符重载