2014-12-07 87 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)).';