首页 > 编程笔记 > MATLAB笔记 阅读:4

MATLAB ismember()函数的用法

在 MATLAB 中,ismember() 函数用于判断一个集合是否为另一个集合的子集。

ismember() 函数的调用格式及说明如下表所示。

表:ismember()函数调用格式及说明
调用格式 说明
Lia = ismember(A,B) 返回一个和 A 长度相同的向量。如果 A 中某位置的元素能在 B 中找到,返回的向量中相应的位置是 1,其余位置为 0。如果 A 和 B 是表或时间表,则为每一行返回一个逻辑值。对于时间表,在确定相等性时会考虑行时间,输出一个列向量 Lia
Lia = ismember(A,B,'rows') 将 A 和 B 中的每一行视为一个实体,返回一个列向量,当 A 中的行也存在于 B 中时,返回相应位置为逻辑值 1(true),其他位置为逻辑值 0(false)。rows 选项不支持元胞数组,除非其中一个输入项为分类数组或日期时间数组
[Lia,Locb] = ismember(...) 使用上述任何语法,返回 A 的逻辑索引 Lia 和在 B 中的位置 Locb
[Lia,Locb] = ismember(...,'legacy') 保留 ismember 函数在 R2012b 和早期版本中的行为。legacy 选项不支持分类数组、日期时间数组、持续时间数组、表或时间表

【实例 1】判断查询值是否为集合元素。
在 MATLAB 命令行窗口中输入如下命令:
>> clear                % 清除工作区的变量
>> A = [1 2 3 4 5];     % 创建两个向量A和B
>> B = [1 2 3];
>> Lia = ismember(A,B)  % 确定 A中的哪些元素同时也在 B 中
Lia =
  1×5 logical 数组
   1   1   1   0   0

【实例 2】判断查询值是否为集合元素,并确定共有值的索引。
在 MATLAB 命令行窗口中输入如下命令:
>> clear                        % 清除工作区的变量
>> A = [1 2 3 4 5];             % 创建两个向量A和B
>> B = [1 2 3 4 5 6 7 8 9];
>> [Lia,Locb] = ismember(A,B)   % 确定A中的哪些元素同时也在 B 中,以及在 B 中的相应位置
Lia =
  1×5 logical 数组
   1   1   1   1   1
Locb =
     1     2     3     4     5

相关文章