使用MATLAB有效地创建某个矩阵

时间:2014-06-22 19:02:16

标签: performance matlab matrix vectorization

我有1 x n向量a和1 x m向量b。我想创建n x m矩阵,其第j行是向量a(j)* b。我一直在MATLAB中用

做这个
[M1, M2] = meshgrid(b, a);
M = M1.*M2

由于n,m在我的问题中非常大,我正在寻找最有效的方法让MATLAB做到这一点,我怀疑我的临时黑客不是答案。在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

尝试

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

在我的计算机上,对于包含数千个元素的向量,这比原始代码快几倍。