小编Iva*_*anT的帖子

Matlab的bsxfun() - 什么解释了在不同维度上扩展时的性能差异?

在我的工作(计量经济学/统计学)中,我经常需要将不同大小的矩阵相乘,然后对结果矩阵执行额外的操作.我一直依赖于bsxfun()对代码进行矢量化,一般来说我认为代码更有效repmat().但我不明白的是,为什么有时在bsxfun()不同维度扩展矩阵时性能会有很大差异.

考虑这个具体的例子:

x      = ones(j, k, m);
beta   = rand(k, m, s);

exp_xBeta   = zeros(j, m, s);
for im = 1 : m
    for is = 1 : s
        xBeta                = x(:, :, im) * beta(:, im, is);
        exp_xBeta(:, im, is) = exp(xBeta);
    end
end

y = mean(exp_xBeta, 3);
Run Code Online (Sandbox Code Playgroud)

背景:

我们有来自m个市场和每个市场的数据,我们想要计算exp(X*beta)的期望,其中Xj × k矩阵,βk × 1随机向量.我们通过蒙特卡罗整合计算这种期望-让小号平的测试,计算EXP(X*试用版)对每个平局,然后取平均值.通常我们得到 …

performance matlab matrix vectorization bsxfun

8
推荐指数
1
解决办法
317
查看次数

标签 统计

bsxfun ×1

matlab ×1

matrix ×1

performance ×1

vectorization ×1