0
我試圖向量化某個加權和,但無法弄清楚如何去做。我在下面創建了一個簡單的最小工作示例。我猜這個解決方案涉及到bsxfun或重塑和克羅內克產品,但我仍然沒有設法使它工作。向量化加權和matlab
rng(1);
N = 200;
T1 = 5;
T2 = 7;
A = rand(N,T1,T2);
w1 = rand(T1,1);
w2 = rand(T2,1);
B = zeros(N,1);
for i = 1:N
for j1=1:T1
for j2=1:T2
B(i) = B(i) + w1(j1) * w2(j2) * A(i,j1,j2);
end
end
end
A = B;
哇。那很快。這工作完美。我曾嘗試使用bsxfun並重塑,但沒有弄清楚。非常感謝你!我只能在6分鐘內接受答案:) – phdstudent
我已經稍微編輯過這個問題。這個答案是否容易推廣爲三維和? – phdstudent
@volcompt它看起來像這個解決方案適用於你的二維加權問題,但真正的3D問題是一個不同的野獸。最好接受這個問題(如果它對你有用)和[問另外一個問題](http://meta.stackexchange.com/a/43485/318672)與你的新問題。 – Suever