Hello, I am trying to plot the function below but the result is a weird graph. Here is my code
a=1+randn(1,1e3)*sqrt(1/2);
b=1+randn(1,1e3)*sqrt(1/2);
c=a+b*1i;
g=abs(c);
y=2*(K+1)*exp(-K)/Omega*g.*exp(-((K+1)*g.^2)/Omega).*besseli(0, 2*sqrt(K*(K+1)/Omega).*g); %simulation
plot(g, y);
and here is the graph
How do I make it normal?

 採用された回答

Voss
Voss 2023 年 2 月 10 日

0 投票

You need to sort g before calculating y (or sort g and y afterwards - not shown here).
% I made up some values for the missing variables. Obviously, you would use
% the correct values here:
K = 1;
Omega = 1;
a=1+randn(1,1e3)*sqrt(1/2);
b=1+randn(1,1e3)*sqrt(1/2);
c=a+b*1i;
g=abs(c);
% sort g so the plotted points are in order
g = sort(g);
y=2*(K+1)*exp(-K)/Omega*g.*exp(-((K+1)*g.^2)/Omega).*besseli(0, 2*sqrt(K*(K+1)/Omega).*g); %simulation
plot(g, y);

2 件のコメント

Konstantina Chitou
Konstantina Chitou 2023 年 2 月 10 日
Thank you so much!
Voss
Voss 2023 年 2 月 10 日
You're welcome!

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange2-D and 3-D Plots についてさらに検索

製品

タグ

質問済み:

2023 年 2 月 10 日

コメント済み:

2023 年 2 月 10 日

Community Treasure Hunt

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

Start Hunting!

Translated by