我很想知道是否有一種更有效的方法來乘以多維矩陣的特定元素,而不需要'for'循環。有效乘以多維矩陣
我有一個區域*時間矩陣爲個人(比如50個區域和1000個時間點),我想在每個時間點乘以每對區域創建每個區域對的產品在每個時間的新矩陣點(50 x 50 x 1000)。我目前正在運行它的方式是:
for t = 1:1000
for i = 1:50
for j = 1:50
new(i,j,t) = old(i,t) .* old(j,t)
正如我確信你可以想象,這是超級慢。任何想法,我如何修復它,使其運行速度更快?
好像你正在做的元素方式乘法。舊的(i,t)和舊的(j,t)都是二維矩陣還是隻有一個元素(即單個數字)? – ha9u63ar 2015-01-09 21:50:59
他們都是二維矩陣。事實上,它們都是相同的矩陣,但是將它們標記爲(i,t)和(j,t)並且迭代t,i和j是我可以想出創建我想要的輸出的唯一方式(在二維矩陣(i * j)的每個單元中成對乘法的三維矩陣沿着第三維延伸,t。 – 2015-01-09 22:02:37