2

我有矩阵 [mxn] 和向量 [m],我想将每一行与相应的向量编号进行比较,有没有办法做这个向量化的方法?

4

2 回答 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 回答