【发布时间】:2013-11-22 16:20:21
【问题描述】:
有两个矩阵,A 和 B,大小分别为 m-by-4 和 n-by-4。我的问题是如何在 A 和 B 的每一行上应用一个函数 f,它以两个 1x4 向量作为输入。结果将是一个大小为 mxn 的矩阵。 result 中的元素 [i, j] 是 f(A(i, :), B(j, :))。
例如:
A = rand(3, 4);
B = rand(5, 4);
for i = 1 : 3
for j = 1 : 5
result(i, j) = rectint(A(i, :), B(j, :));
end
end
我可以使用bsxfun 或arrayfun 来完成这项工作吗?
【问题讨论】:
-
我猜你会按照你写的那样做 - bsxfun 是元素方面的,我认为你不能那样滥用它。
-
你能重写你的
rectint函数来接受和返回矩阵吗? -
@David, 'rectint' 是 matlab 内置函数,用于计算矩形的重叠。
-
根据 Luis Mendo 的回答,我认为使用
meshgrid将是最简单的解决方案。 -
@David:无需重写
rectint。它已经处理了矩阵。虽然,这听起来只是一个例子。
标签: arrays matlab matrix bsxfun