Matlab,如何比较一行矩阵的每个元素与另一行矩阵的每个元素?
我在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 %
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) )