【问题标题】:Finding index funtion returns zero (0) Matlab查找索引函数返回零 (0) Matlab
【发布时间】:2017-11-06 19:25:03
【问题描述】:

我在matlab中使用这个函数来查找矩阵A中两个值的索引匹配矩阵B中的两个值:

[~, ind] = ismember(A(:, [1 2]), B(:, [1 2]), 'rows');

但是,我得到一些值 0 作为输出返回。

这是否意味着矩阵 B 中的某些值对不存在于矩阵 A 中?

【问题讨论】:

  • 你读过documentation吗?文档中通过示例很好地解释了这一点。

标签: matlab indexing match


【解决方案1】:

阅读文档部分,MATLAB 的文档非常丰富。检查以下示例:

A = [1 2 3; 4 5 6; 7 -9 0] ;
B = [3 4 5 ; 1 2 3 ] ;
[Lia, Locb] = ismember(A,B, 'rows') 
Lia =

     1
     0
     0

Locb =

     2
     0
     0

结果,Lia 是合乎逻辑的,而 Locb 是双重的。 Lia 给出了 A 中的逻辑索引,它们是 A 和 B 中的公共行。(在示例中,A [1 2 3] 中的第一行是常见的),因此逻辑索引将是 [1 0 0]'。 Locb 给出了 B 中公共行的索引/位置。(这里是公共行 [1 2 3],这发生在 B 的第二行)所以结果是 [2 0 0]'。

在您的情况下,您说结果 ind 为零,因此没有公共行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 2014-06-12
    • 2015-11-11
    • 2014-04-30
    相关资源
    最近更新 更多