我試圖向量化某個加權總和,但無法弄清楚如何去做。我在下面創建了一個簡單的最小工作示例。我猜這個解決方案涉及到bsxfun或重塑和克羅內克產品,但我仍然沒有設法使它工作。三重加權總和
rng(1);
N = 200;
T1 = 5;
T2 = 7;
T3 = 10;
A = rand(N,T1,T2,T3);
w1 = rand(T1,1);
w2 = rand(T2,1);
w3 = rand(T3,1);
B = zeros(N,1);
for i = 1:N
for j1=1:T1
for j2=1:T2
for j3=1:T3
B(i) = B(i) + w1(j1) * w2(j2) * w3(j3) * A(i,j1,j2,j3);
end
end
end
end
A = B;
對於二維情況,有一個智能答案here。
你需要推廣?因爲如果是這樣的話,我會把你的N,T1,T2,T3換成一個數組。 –
我其實只是想要三維的情況。但泛化可能對其他人有用:) – phdstudent
以下概括:) –