我們給出了一個D維張量,表示爲一個大小爲n^D的向量。如何在Matlab中求和高維張量的子張量?
該向量表示在{0,1,...,n}^d中隨機變量X \的D維分佈。這就是張量中的(i_1,i_2,...,i_d)項表示X_1 = i_1,X_2 = i_2,... X_d = i_d的概率。
我需要爲每個維度d和值i \ in [n]計算邊際分佈P(X_d = i)。即,這意味着P(X_d = i)的答案是向量的n ^(D-1)個條目的和。
例如,如果d = 2和n = 4,我們有大小(16,1)和所述第一尺寸等於1的概率的向量x是
P(X_1 = 1)= X(1)+ X(2)+ X(3)+ X(4)
所述第二尺寸等於3的概率是'
P(X_2 = 3)= x(3)+ x(7)+ x(11)+ x(15)
我正在編寫需要計算這些邊際分佈的Matlab代碼,但我對Matlab不夠熟悉,不能用簡單的方法來完成它(使用一些醜陋的遞歸是可行的,但必須有更好的方法選項)。
+1我覺得這是要走的路 – 2014-10-01 15:20:21
太棒了,謝謝! – 2014-10-01 15:24:26