matlab - 在 matlab 中使用 ismember 或 intersect

标签 matlab matrix

我有两个列向量 [a b] 和 [c d]。我只想选择 'a' 中的那些数据点,其中 'c' 匹配 'a' 以及相应的 'b' 值。由于“a”中有一些重复,这使得“ismember”命令无法正常工作。 “For loop”是另一种选择,但列向量的大小对于制作循环来说太大了。下面给出了一个简短的例子。任何解决方案?谢谢

[a b]

答案=

1.0000    0.1000
2.0000    0.2000
2.0000    0.2000
3.0000    0.4000
4.0000    0.5000

[c d]

答案=

 2     7
 3    12

最佳答案

如果我理解正确,解决方案是从:

[a idx] = unique(a);
b = b(idx);

这样你就删除了 a 的所有重复出现,所以现在你可以只使用常规方法,如 ismemberintersect

关于matlab - 在 matlab 中使用 ismember 或 intersect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14160386/

相关文章:

matlab - Simulink 中的 block 积分器溢出

matlab - 我可以使用什么MATLAB函数添加声音片段?

matlab - MATLAB 中的矩阵索引错误

matlab - 创建没有 for 循环的类矩阵

c++ - 广度优先搜索找不到正确的路径

matlab - 矩阵的值在其边缘周围平滑地下降到零

matlab - 如何在 MATLAB 中中止正在运行的程序?

python - 计算适用于 numpy 数组,但不适用于 numpy 矩阵

c - 索引 0 处的 for 循环中的数组访问冲突异常

matlab - 使用 varargin 的匿名函数