MATLAB Answers

Displaying random numbers as a graph

3 ビュー (過去 30 日間)
Mustafa Vural
Mustafa Vural 2020 年 10 月 17 日
コメント済み: Star Strider 2020 年 10 月 18 日
I am generating random numbers with the rejection sampling, like in this picture. How can I see my generated random numbers as points, like in this picture?

  1 件のコメント

Adam Danz
Adam Danz 2020 年 10 月 18 日
plot()
scatter()

サインインしてコメントする。

採用された回答

Star Strider
Star Strider 2020 年 10 月 18 日
One approach is to use the inpolygon function:
x = linspace(0, 10);
y = exp(-(x-5).^2)*0.2;
r = rand(1000,2).*[10 0.25];
[in,on] = inpolygon(r(:,1),r(:,2), x, y);
figure
plot(x,y)
hold on
plot(r(:,1), r(:,2),'.r')
plot(r(in,1), r(in,2), '.g')
hold off
producing:
Experiment with it to get the result you want.
.

  6 件のコメント

表示 3 件の古いコメント
Star Strider
Star Strider 2020 年 10 月 18 日
It appears that the function plots correctly, the only problem being the random dots. (I was going on the data in the plot image you posted.)
This is the reason it is extremely important to post the exact problem you want help with. The example image helps significantly. I will go by it to define my code in the absence of other information.
You will need to adjust the vector elements that multiply the rand matrix. This is defined as:
r = rand(1000,2).*[x_limit y_limit];
so here:
r = rand(1000,2).*[2 1.2];
to create the dots defining their x-values from 0 to 2 and y-values from 0 to 1.2.
Again using my function because I still do not have your parameters:
x = linspace(0, 2);
y = exp(-(x-1).^2*20)*1.15;
r = rand(1000,2).*[2 1.2];
[in,on] = inpolygon(r(:,1),r(:,2), x, y);
figure
plot(x,y)
hold on
plot(r(:,1), r(:,2),'.r')
plot(r(in,1), r(in,2), '.g')
hold off
producing:
Note that the plot x-limits and y-limits have changed as well.
Use your own function, and change the rand multiplication vector as necessary to get the result you want.
.
Mustafa Vural
Mustafa Vural 2020 年 10 月 18 日
I understand now, thank you very much! I appreciate it!
Star Strider
Star Strider 2020 年 10 月 18 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by