这段代码提供了一个MATLAB函数用于从Von Mises分布中抽取随机样本。通过调整fMu(均值)和fKappa(集中参数),用户可以灵活地生成符合不同分布特性的数据集,适用于方向统计分析等领域。
该函数采用基于包裹柯西分布的包络抑制方法从任意 Von Mises 分布中抽取随机变量,这一技术首次在相关文献[1]中提出。其中,fMu 和 fKappa 是定义于区间[-π, π)上的Von Mises分布的均值和方差参数。tVMVariates 将是一个包含从所给定分布中抽取出的随机变量组成的张量。如果输入的fMu 和 fKappa 不是标量,则它们必须具有相同的尺寸;在这种情况下,输出张量 tVMVariates 的大小也将相同。若两者为标量值,可以通过额外参数指定返回的随机变量的数量。
例如:
- vmrand(linspace(-pi, pi, 20), 2); % 返回多个不同均值 fMu 对应分布下的随机变量
- vmrand(0, 2, [100 1]); % 当fMu = 0 和给定的 fKappa 值时,返回大小为[100 1] 的VM 分布中的100个随机数。