2014-12-07 84 views
0

我想要使用bsxfun向量化几个matlab操作。看看bsxfun文档,它看起来像我一次只能做两个操作。但我试图做的操作有几个操作。Bsxfun在Matlab中使用矩阵和向量的多个操作

# 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操作中完成所有操作?任何帮助是极大的赞赏!

回答

0

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

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

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