Matlab,如何将行矩阵的每个元素与另一个行矩阵的每个元素进行比较?

时间:2009-11-17 12:31:52

标签: matlab

我在Matlab中有两个矩阵:

q = [3 4 5];  
w = [5 6 7];

我想将q的每个元素与w进行比较(即3与5,6和7比较)。如果它与w中的任何元素匹配(例如qw中的5),则qw共享5作为公共密钥。

如何计算qw的所有常用密钥?

4 个答案:

答案 0 :(得分:3)

尝试

>> x = intersect(q,w)

x = 

    5

此函数将输入向量视为集合并返回集合交集。我想这就是你想知道的。有匹配是/否?如果x为空(numel(x)== 0)则没有匹配。

答案 1 :(得分:3)

q = [3 4 5];
w = [5 6 7];

%# @sellibitze
intersect(q,w)

%# @Loren
q( ismember(q,w) )

%# Me :)
q( any(bsxfun(@eq, q, w'),1) )

答案 2 :(得分:2)

[Q W] = meshgrid(q, w)
% Q =
%      3     4     5
%      3     4     5
%      3     4     5
% W =
%      5     5     5
%      6     6     6
%      7     7     7
Q == W
% ans =
%      0     0     1
%      0     0     0
%      0     0     0

答案 3 :(得分:2)

如果您需要有关比赛的更多信息,请查看ismember,特别是第二和第三输出论据。