假设我有一个向量needle = [3 2 6];,我想在另一个向量中找到其元素的索引haystack = [0 1 2 3 4 5 6 7 8 9];.要返回的结果needle与此版本具有相同的维度[4 3 7].元素needle不一定是唯一的.我已经使用for循环使用函数文件实现了这一点.使用的实现ismember可以工作,但如果两个或多个元素needle相同,ismember则会遇到问题,因为对于所有元素都将返回单个"1" needle相同.
find(haystack == needle)
Run Code Online (Sandbox Code Playgroud)
也不会像干草堆一样工作,针可能不是同一个维度.
是否有一个整洁的单线,我可以用来实现同样的事情?
ismember 确实有效,但你需要第二个输出:
[~, ind] = ismember(needle, haystack)
Run Code Online (Sandbox Code Playgroud)
例如
needle = [3 2 6 6];
haystack = [0 1 2 3 4 5 6 7 8 9];
[~, ind] = ismember(needle, haystack)
ind =
4 3 7 7
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8842 次 |
| 最近记录: |