Matlab 如何在2D域上扩展节点?

Matlab 如何在2D域上扩展节点?,matlab,Matlab,是否有人知道MATLAB中的任何函数(或任何建议),我可以在2D域上传播节点 对我来说,有必要扩展节点,使节点密度在整个域上几乎相等 谢谢你的帮助。兰德公司怎么样 如果需要二维域上均匀分布的n点的二维坐标,宽度w和高度h,则: xy = bsxfun(@times, rand( 2, n ), [w; h] ); figure; scatter( xy(1,:), xy(2,:), 40, '+' );axis equal; 下面是n=500、h=3和w=1的可能结果: 兰德公司怎么样 如果需

是否有人知道MATLAB中的任何函数(或任何建议),我可以在2D域上传播节点

对我来说,有必要扩展节点,使节点密度在整个域上几乎相等


谢谢你的帮助。

兰德公司怎么样

如果需要二维域上均匀分布的
n
点的二维坐标,宽度
w
和高度
h
,则:

xy = bsxfun(@times, rand( 2, n ), [w; h] );
figure; scatter( xy(1,:), xy(2,:), 40, '+' );axis equal;
下面是
n=500
h=3
w=1
的可能结果:
兰德公司怎么样

如果需要二维域上均匀分布的
n
点的二维坐标,宽度
w
和高度
h
,则:

xy = bsxfun(@times, rand( 2, n ), [w; h] );
figure; scatter( xy(1,:), xy(2,:), 40, '+' );axis equal;
下面是
n=500
h=3
w=1
的可能结果:

非常感谢,但我如何将其用于任何2D域,例如圆形?我是否应该更改[w;h]?对于任意矩形域,可以使用2D变换旋转
xy
。但是,使用beynod旋转、平移、缩放等任意变换,生成的密度可能不再均匀。有关三角形排列,请参见。注意人们如何在他们的答案中提到统一传播的主题!对于圆形,最简单的方法当然是拒绝方法:generate
xy=-R+2*R*rand(n,2)并拒绝圆外的所有点:
xy(总和(xy.^2,2)>R^2,:)=[]。非常感谢,但我如何将其用于任何2D域,例如圆形?我是否应该更改[w;h]?对于任意矩形域,可以使用2D变换旋转
xy
。但是,使用beynod旋转、平移、缩放等任意变换,生成的密度可能不再均匀。有关三角形排列,请参见。注意人们如何在他们的答案中提到统一传播的主题!对于圆形,最简单的方法当然是拒绝方法:generate
xy=-R+2*R*rand(n,2)并拒绝圆外的所有点:
xy(总和(xy.^2,2)>R^2,:)=[]