在matlab 中如何判断一个数是否属于一个数组

我在编一个程序,要求数组中每一个元素的值都不相同

ismember

判断数组元素是否为集数组成员

全页折叠

语法

Lia = ismember(A,B)

Lia = ismember(A,B,'rows')

[Lia,Locb] = ismember(___)

[Lia,Locb] = ismember(___,'legacy')

说明

示例

如果 A 中某位置的数据能在 B 中找到,Lia = ismember(A,B) 将返回一个在该位置包含逻辑值 1 (true) 的数组。数组中的其他位置将包含逻辑值 0 (false)。

    如果 A 和 B 是表或时间表,ismember 将为每一行返回一个逻辑值。对于时间表,ismember 在确定相等性时会考虑行时间。输出 Lia 是一个列向量。

    Lia = ismember(A,B,'rows') 将 A 和 B 中的每一行视为一个实体,当 A 中的行也存在于 B 中时,将返回包含逻辑值 1 (true) 的列向量。数组中的其他位置将包含逻辑值 0 (false)。

    'rows' 选项不支持元胞数组,除非其中一个输入项为分类数组或日期时间数组。

    示例

    使用上述任何语法,[Lia,Locb] = ismember(___) 还会返回数组 Locb。

    一般情况下,对于 A 中属于 B 的成员的每一个值,Locb 会包含该值在 B 中的最小索引。值为 0 表示 A 不是 B 的成员。

    如果指定了 'rows' 选项,Locb 将在 B 中为 A 和 B 中共有的每个行包含最小索引。值为 0 表示 A 不是 B 中的行。

    如果 A 和 B 是表或时间表,Locb 将在 B 中为 A 和 B 中共有的每个行包含最小索引。值为 0 表示 A 不是 B 中的行。

    示例

    [Lia,Locb] = ismember(___,'legacy') 保留了 ismember 函数在 R2012b 和早期版本中的行为,它可保证函数在结合前面所述语法中的任何输入参数使用时能够得到与之前版本一致的结果。

    'legacy' 选项不支持分类数组、日期时间数组、持续时间数组、表或时间表。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-29
取得数组大小,用2重循环查验是否有元素相同
第2个回答  2009-03-29
Matlab自带unique函数的:

A = [1 1 5 6 2 3 3 9 8 6 2 4]
A =
1 1 5 6 2 3 3 9 8 6 2 4

[b, m, n] = unique(A)
b =
1 2 3 4 5 6 8 9
m =
2 11 7 12 3 10 9 8
n =
1 1 5 6 2 3 3 8 7 6 2 4本回答被提问者采纳
相似回答