用MATLAB高效地创建矩阵

3

我有一个长度为n的向量a和一个长度为m的向量b。我想要创建一个n x m的矩阵,其中第j行是向量a(j)乘以向量b得到的结果。在MATLAB中,我一直使用以下代码实现:

```matlab repmat(a', m, 1) .* repmat(b, n, 1) ```
[M1, M2] = meshgrid(b, a);
M = M1.*M2

由于我的问题中n和m非常大,我正在寻找最有效的方法让MATLAB实现此操作,我怀疑我的临时解决方案不是答案。非常感谢您的帮助!

1个回答

1

尝试

M = bsxfun(@times, a.', b);

在我的电脑上,使用数千个元素的向量时,这比您原来的代码快几倍。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接