【问题标题】:Randomly drawing from a hypercube in Matlab从Matlab中的超立方体随机绘制
【发布时间】:2016-04-22 06:07:21
【问题描述】:

考虑 n>3 的 n 立方体(定义为 here)。假设它以笛卡尔平面的原点为中心,每条边的长度为 10。

我想在 Matlab 中编写一段代码,允许我从这个超立方体中随机绘制一个点(具有 n 个坐标)。有没有办法在不预先定义 n 维网格的情况下做到这一点?在我的特定应用程序中,n=11。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    要从边为s 的 n 维超立方体的体积中绘制 1 个点,并且所有点的概率相等,您调用

    s = 10;
    point = (rand(1,n)-0.5)*s;
    

    如果要一次绘制多个点,请将 1 替换为较大的数字。

    【讨论】:

    • 中心在哪里?是否可以使用与原点不同的中心?
    【解决方案2】:

    扩展乔纳斯的回答,如果你想指定一个中心,这样做:

    center = [1.0 -1.0 2.0 -2.0 ...];
    s = 10;
    point = (rand(1,n)-0.5)*s + center;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 2015-06-16
      • 1970-01-01
      • 2019-04-06
      相关资源
      最近更新 更多