我有矩阵[m x n]和vector [m],我想用相应的向量数比较每一行,有没有办法做这个向量化方法?
答案 0 :(得分:6)
使用bsxfun
:
% example data
M = rand(5, 3);
V = rand(5,1);
% for equality (==) :
bsxfun(@eq, V, M);
% for greater-than (>) :
bsxfun(@gt, V, M);
% for greater-than-or-equals (>=) :
bsxfun(@ge, V, M);
等。可用功能列表列在help bsxfun
中。
答案 1 :(得分:0)
首先,你最好注意你的录取率:)
您可以尝试使用intersect
函数来比较矩阵中是否有任何向量成员。
然后将这些成员保存到新的载体中,如果这对你有帮助的话。
x = [mxn]
y = [m]
z=intersect(x,y)
e.g。
x = [1,2,3,4,5,]
y = [5,6,2]
z = intersect(x,y)
将导致
z = [2,5]
改进的答案是: -
[z,ix,iy] = intersect(x,y)
其中ix,iy为您提供y元素在X中存在的行索引。