在Matlab中从超立方体中随机绘制

时间:2016-04-21 21:25:49

标签: matlab

考虑n-cube(定义{{​​3}}),n> 3。假设它以笛卡尔平面的原点为中心,每条边的长度为10。

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:3)

Extending Jonas' answer, if you want to specify a center, do this:

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