考虑n-cube(定义{{3}}),n> 3。假设它以笛卡尔平面的原点为中心,每条边的长度为10。
我想在Matlab中编写一段代码,允许我从这个超立方体中随机绘制一个点(带有n个坐标)。有没有办法在不预先定义n维网格的情况下做到这一点?在我的特定应用中,n = 11。
答案 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;