矩阵行大小与矢量项比较?

时间:2012-11-27 10:05:35

标签: matlab octave

我有矩阵[m x n]和vector [m],我想用相应的向量数比较每一行,有没有办法做这个向量化方法?

2 个答案:

答案 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中存在的行索引。