我在MATLAB中有以下类型的代码:
indices = find([1 2 2 3 3 3 4 5 6 7 7] == 3)
Run Code Online (Sandbox Code Playgroud)
这将返回4,5,6 - 数组中元素的索引等于3.现在.我的代码用很长的向量做这种事情.矢量总是排序.
因此,我想要一个用O(log n)替换find的O(n)复杂度的函数,代价是必须对数组进行排序.
我知道ismember,但是据我所知,它并没有返回所有项目的索引,只是最后一个(我需要所有项目).
出于便携性的原因,我需要解决方案仅限MATLAB(没有编译的mex文件等)