如何比较矢量中的元素与另一个矢量

时间:2016-10-16 15:59:18

标签: matlab vectorization

我有2个向量:

a = [1, 2, 3];
b = [1.5 2.5 3.5];

我希望得到以下内容

[sum(a(1) < b), sum(a(2) < b), sum(a(3) < b)]

%  3   2   1

有没有办法在不使用arrayfunfor循环的情况下执行此操作?

我正在使用MATLAB R2014b。

1 个答案:

答案 0 :(得分:1)

您可以使用bsxfun将操作应用于a中与b中每个元素相关的每个元素。操作将是@lt(小于)。然后,我们可以对列进行求和,以计算ba中的值大于sum(bsxfun(@lt, a, b.'), 1) 中的每个值的数量。

bsxfun

在较新版本的MATLAB(R2016b及更新版本)上,您可以省略sum(a < b.', 1) 并执行以下操作

Activities