我想生成300个具有这些模式的坐标点的红色和蓝色样本。 对x使用rand()然后使用毕达哥拉斯定理计算y并没有帮助,因为对于相同的x,我们可以有不同的y。
答案 0 :(得分:2)
根据Luis Mendo的建议,您可以使用matlab的典型rand
函数在polar coordinates中生成随机点,如下所示:
figure
hold on
red = sampleCircle([1.4 1.6], 300);
plot(red(:, 1), red(:, 2), 'r*');
blue = sampleCircle([0 0.5], 300);
plot(blue(:, 1), blue(:, 2), 'b*');
function X = sampleCircle(rangeR, n)
r = rand(n, 1) * diff(rangeR) + rangeR(1);
theta = rand(n, 1) * 2*pi;
X = r .* [cos(theta) sin(theta)];
end