我有两个矩阵在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
的所有常用密钥?
我有两个矩阵在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
的所有常用密钥?
尝试
>> x = intersect(q,w)
x =
5
该函数将输入向量作为一组,并返回的交集。我认为这是你想知道的。有没有匹配是/否?如果x为空(numel(x)== 0),则不匹配。
[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
thankx很多我的朋友,这个网站的岩石... – gurwinder 2009-11-17 14:58:08
查看ismember,尤其是第二个和第三个输出结果,如果您需要更多关于匹配的信息。
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))
谢谢你很多,这一个看起来正是我需要的,谢谢你的帮助 – gurwinder 2009-11-17 15:01:06