如何用matlab产生在圆内的随机位置

2025-02-22 15:50:43
推荐回答(3个)
回答1:

本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!

回答2:

2变量rand
距离,角度
距离不大于半径
角度0-360(0-2pi)也行

回答3:

R = 10;% 半径
nn = 100;% 点数
X_Y = rand(nn,2)*2*R - R; % (-R,-R)到(R,R)矩形范围内的随机点
for ii = 1:nn
if X_Y(ii,1)*X_Y(ii,1)+X_Y(ii,2)*X_Y(ii,2)>R*R
X_Y(ii,1) = 2*R;X_Y(ii,2)=2*R;% 圆外的奇异点设置为一个大于R的数
end
end
X_Y(find(X_Y>R))=[];% 除去奇异点
X_Y=reshape(X_Y,round(length(X_Y)/2),2); % 重新变形为2列

如果点数不够,可以多产生一些,然后去掉多余的即可,如下:
...
nn = 200; %产生的点数
n0 = 100; %需要的点数
...
X_Y(n0+1:end,:) = [];