关于matlab:矩阵行大小与向量项的比较?

Matrix Row size comparison with Vector item?

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


使用 bsxfun:

1
2
3
4
5
6
7
8
9
10
11
12
% 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 中列出了可用功能的列表。


首先,你最好注意你的录取率:)

您可以尝试使用 intersect 函数来比较矩阵中是否有任何向量成员。
如果这对您有帮助,请将这些成员保存到新向量中。

1
2
3
x = [mxn]
y = [m]
z=intersect(x,y)

例如

1
2
3
x = [1,2,3,4,5,]
y = [5,6,2]
z = intersect(x,y)

将导致

1
z = [2,5]

改进的答案是:-

1
[z,ix,iy] = intersect(x,y)

其中 ix, iy 为您提供 y 元素在 X 中存在的行索引。