【问题标题】:Bsxfun in Matlab using multiple operations with Matrices and VectorsMatlab 中的 Bsxfun 使用矩阵和向量的多个操作
【发布时间】:2014-12-07 12:00:02
【问题描述】:

我正在尝试使用 bsxfun 对一些 matlab 操作进行矢量化。查看bsxfun 文档,看起来我一次只能执行两个操作。但是我正在尝试执行的操作有一些操作。

# delta_g is 100 X 1
# z is 100 X 1
# W is 100 X 10
# delta 10 X 1

for j = 1:100
    delta_g(j) = (1 - z(j)) * (W(j,:) * delta);
end

下面是我尝试使用的代码。

temp = bsxfun(@times, W, delta.');
temp1 = 1 - z;

我的理由是将其分成两个操作,然后将多个 temptemp1 放在一起,但尺寸不适用于我的解决方案?将其矢量化的最佳方法是什么,是否有可能在一次 bsxfun 操作中完成所有这些操作?非常感谢任何帮助!

【问题讨论】:

    标签: matlab matrix vector bsxfun


    【解决方案1】:

    一般情况下,您需要多次使用bsxfun,因为每个bsxfun 只能执行一次操作。

    但在这种情况下,它可以通过矩阵乘法和逐元素乘法来完成:

    delta_g = ((1-z).*(W*delta)).';
    

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      相关资源
      最近更新 更多