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

Matlab,如何比较一行矩阵的每个元素与另一行矩阵的每个元素?,matlab,Matlab,我在Matlab中有两个矩阵: q = [3 4 5]; w = [5 6 7]; 我想将q的每个元素与w进行比较(即3与5、6和7进行比较)。如果它与w中的任何元素匹配(如q和w中的5),则q和w都将5作为公共键共享 如何计算q和w的所有公用键?如果您需要有关匹配的更多信息,请查看ismember,尤其是第二个和第三个输出参数。试试 [Q W] = meshgrid(q, w) % Q = % 3 4 5 % 3 4 5 %

我在Matlab中有两个矩阵:

q = [3 4 5];  
w = [5 6 7];
我想将
q
的每个元素与
w
进行比较(即3与5、6和7进行比较)。如果它与
w
中的任何元素匹配(如
q
w
中的5),则
q
w
都将5作为公共键共享


如何计算
q
w
的所有公用键?

如果您需要有关匹配的更多信息,请查看ismember,尤其是第二个和第三个输出参数。

试试

[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
>> x = intersect(q,w)

x = 

    5

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

非常感谢x,这一个看起来正是我需要的,谢谢帮助
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) )