在Octave中生成带圆圈图案点的坐标点

时间:2017-05-02 14:57:37

标签: matlab random octave

Two types of samples with circle pattern

我想生成300个具有这些模式的坐标点的红色和蓝色样本。 对x使用rand()然后使用毕达哥拉斯定理计算y并没有帮助,因为对于相同的x,我们可以有不同的y。

1 个答案:

答案 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

enter image description here