我有矩阵 [mxn] 和向量 [m],我想将每一行与相应的向量编号进行比较,有没有办法做这个向量化的方法?
问问题
179 次
2 回答
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
。
于 2012-11-27T10:48:45.760 回答
0
首先,你最好注意你的接受率:)
您可以尝试intersect
使用函数来比较矩阵中是否有任何向量成员。如果这对您有帮助,则将这些成员保存到新向量中。
x = [mxn]
y = [m]
z=intersect(x,y)
例如
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 中存在的行索引。
于 2012-11-27T10:19:35.970 回答