【发布时间】:2026-01-13 16:30:01
【问题描述】:
给定一个 D 维张量,表示为大小为 n^D 的向量。
向量表示随机变量 X \in {0,1,..,n}^d 的 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) 的向量 x,第一个维度等于 1 的概率为
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 不够熟悉,无法以简单的方式完成(使用一些丑陋的递归是可行的,但必须有更好的选择)。
【问题讨论】:
标签: matlab vector multidimensional-array