在矩阵中找到不同值的行索引

汉密尔顿

以矩阵A(n * 2)为源,矩阵B为向量,其中包含元素A的子集,我想找到项的行索引。

A=[1 2;1 3; 4 5];
B=[1 5];
F=arrayfun(@(x)(find(B(x)==A)),1:numel(B),'UniformOutput',false)

根据此帮助页面在单元格中提供以下输出

[2x1 double]    [6]

指示所有出现索引。但是我想要行的索引。即我想知道元素1出现在第1行和第2行,元素5出现在第3行。如果索引是逐行的,我可以使用ceil(F {x} / 2)获得所需的输出。现在,随着行数的变化,您建议的解决方案是什么?可能发生的情况是,ismember函数中没有完整的包含标记“行”不起作用。此外,我想知道指定元素的所有索引。在此先感谢您的帮助。

路易斯·门多

方法1

要将F其当前的线性索引格式转换为行索引,请使用mod

rows = cellfun(@(x) mod(x-1,size(A,1))+1, F, 'UniformOutput', false);

您可以将其与代码合并为一行。另请注意,您可以直接将其B用作的输入arrayfun,从而避免了索引的一个阶段:

rows = arrayfun(@(x) mod(find(x==A)-1,size(A,1))+1, B(:), 'UniformOutput', false);

运作方式

F如您的代码所给定的,是列优先形式的线性索引。这意味着索引从的第一列B开始,从第二列的顶部开始,然后再次向下,依此类推。因此,行号可以通过模(mod)操作获得。

方法2

使用bsxfunaccumarray

t = any(bsxfun(@eq, B(:), reshape(A, 1, size(A,1), size(A,2))), 3); %// occurrence pattern
[ii, jj] = find(t); %// ii indicates an element of B, and jj is row of A where it occurs
rows = accumarray(ii, jj, [], @(x) {x}); %// group results according to ii

运作方式

假设AB在您的示例中一样,t是2x3矩阵

t =
     1     1     0
     0     0     1

所述的第行t包含1在列Ñ如果的个元素B在发生Ñ的第行B这些值将通过以下方式转换为行和列形式find

ii =
     1
     1
     2
jj =
     1
     2
     3

这意味着Bo的第一个元素出现在的第1行和第2行A第二个发生在的第3行B

最后,将的值根据其相应的值jj分组(用accumarray),ii以生成所需的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在矩阵中找到不同值的行索引

来自分类Dev

在矩阵中找到不同值的行索引

来自分类Dev

在矩阵中找到最大值的行和列索引

来自分类Dev

在矩阵的每一行中找到1的列索引

来自分类Dev

如何在numpy中找到给定行的值的列索引?

来自分类Dev

在numpy矩阵中找到给定条件的索引

来自分类Dev

我有40401 x 57矩阵,我需要从每一行中找到最大值以及该最大值的对应列索引?

来自分类Dev

如何在二维数组(矩阵)中找到局部最大值的索引?

来自分类Dev

高效的C代码可在每个矩阵行中找到最大数量的列索引

来自分类Dev

在矩阵Matlab中找到最接近的值

来自分类Dev

如何从矩阵中找到线性独立的行

来自分类Dev

sympy - 在矩阵中找到冲突的行

来自分类Dev

在向量中找到NA值的索引

来自分类Dev

如何在列值中找到索引

来自分类Dev

在3维矩阵(或n维)中找到最小元素的索引

来自分类Dev

在3维矩阵(或n维)中找到最小元素的索引

来自分类Dev

如何在特定矩阵的列中找到最小元素的索引

来自分类Dev

在长格式中找到不同的因子值

来自分类Dev

从矩阵中的一行中找到最小的数字,该矩阵由数据帧中的值过滤?

来自分类Dev

matlab:从第一个匹配的列值中找到行的索引

来自分类Dev

在数据框的给定列中找到最大值的行索引

来自分类Dev

如何找到矩阵中非零行的索引?

来自分类Dev

如何找到矩阵中非零行的索引?

来自分类Dev

在矩阵中找到邻居?

来自分类Dev

从矩阵中找到总和等于给定行的某些行的算法

来自分类Dev

如何在第五列中找到具有相同第二列的不同值的行?

来自分类Dev

遍历具有相同id的所有行,并在不同的表中找到匹配的值

来自分类Dev

在稀疏矩阵中找到逐行最小值

来自分类Dev

如何在相关矩阵中找到高值?

Related 相关文章

  1. 1

    在矩阵中找到不同值的行索引

  2. 2

    在矩阵中找到不同值的行索引

  3. 3

    在矩阵中找到最大值的行和列索引

  4. 4

    在矩阵的每一行中找到1的列索引

  5. 5

    如何在numpy中找到给定行的值的列索引?

  6. 6

    在numpy矩阵中找到给定条件的索引

  7. 7

    我有40401 x 57矩阵,我需要从每一行中找到最大值以及该最大值的对应列索引?

  8. 8

    如何在二维数组(矩阵)中找到局部最大值的索引?

  9. 9

    高效的C代码可在每个矩阵行中找到最大数量的列索引

  10. 10

    在矩阵Matlab中找到最接近的值

  11. 11

    如何从矩阵中找到线性独立的行

  12. 12

    sympy - 在矩阵中找到冲突的行

  13. 13

    在向量中找到NA值的索引

  14. 14

    如何在列值中找到索引

  15. 15

    在3维矩阵(或n维)中找到最小元素的索引

  16. 16

    在3维矩阵(或n维)中找到最小元素的索引

  17. 17

    如何在特定矩阵的列中找到最小元素的索引

  18. 18

    在长格式中找到不同的因子值

  19. 19

    从矩阵中的一行中找到最小的数字,该矩阵由数据帧中的值过滤?

  20. 20

    matlab:从第一个匹配的列值中找到行的索引

  21. 21

    在数据框的给定列中找到最大值的行索引

  22. 22

    如何找到矩阵中非零行的索引?

  23. 23

    如何找到矩阵中非零行的索引?

  24. 24

    在矩阵中找到邻居?

  25. 25

    从矩阵中找到总和等于给定行的某些行的算法

  26. 26

    如何在第五列中找到具有相同第二列的不同值的行?

  27. 27

    遍历具有相同id的所有行,并在不同的表中找到匹配的值

  28. 28

    在稀疏矩阵中找到逐行最小值

  29. 29

    如何在相关矩阵中找到高值?

热门标签

归档