how to convert power-law plot to loglog plot

How do I plot power-law function: y = 2000 * x^(-.5) in log-log graph?

 採用された回答

dpb
dpb 2017 年 6 月 16 日

0 投票

ezplot('2000 * x^(-.5)')
set(gca,'yscale','log','xscale','log')
xlim([0.1 10])
or, of course, use loglog
fnEx=@(x) 2000*x.^(-.5); % function handle; NB: the .^ to vectorize solution
x=[0.01 1000];
y=fnEx(x);
figure, loglog(x,y)
Salt to suit...

7 件のコメント

Xin Zhang
Xin Zhang 2017 年 6 月 16 日
編集済み: dpb 2017 年 6 月 16 日
Thanks! Could you also check why there is no graph plotted?
ezplot('307/(1+(307*x/14137)^0.706)');
set(gca,'yscale','log','xscale','log');
xlim([10, 10^5]);
ylim([1, 1000]);
grid on;
dpb
dpb 2017 年 6 月 16 日
The problem with ezplot -- it uses predefined x range; here [0 6] and you set lower limit on x axis to 10 -- there's no data past 6 in the plot.
Use the alternate solution of computing y vector over the desired range directly; note again you need to vectorize the function to be able to compute it efficiently with a vector if inputs. The "dot" operators are the key.
To see this is the problem,
xlim([0.01 10])
and Voila! the data will magically appear!
You can determine that explot uses interval [0 2pi] by
xdata=get(get(gca,'children'),'xdata'); % the x data in plot
disp([xdata(1) xdata(end)])
Xin Zhang
Xin Zhang 2017 年 6 月 16 日
I see. That is very helpful! I think ezplot has too much limitation and i want to go back to fnEX.
In order to plot the function: 307/(1+(307*x/14137)^0.706) to loglog using the first method u taught me, how should I change the match expression? THanks!
Xin Zhang
Xin Zhang 2017 年 6 月 16 日
I would like to see the plot of x from 10 - 100,000 and y from 1 - 1,000.
dpb
dpb 2017 年 6 月 16 日
Well, create the x vector over that range, then, and follow the outline I've given. It'll be a lot more meaningful learning experience to at least try it on your own rather than relying on somebody else to do it for you in its entirety.
Under the section on "Arithmetic" in "Elementary Math" there's a "Concepts" subtopic under which is the "Array vs. Matrix Operations" topic. Study that to learn the difference between "^" and ".^" and the other "dot operators" vis a vis the matrix versions.
Xin Zhang
Xin Zhang 2017 年 6 月 16 日
I See, thank you!
dpb
dpb 2017 年 6 月 16 日
And, if you do get stuck, we're here...but there should be ample bread crumbs already... :)

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeNetworks についてさらに検索

製品

質問済み:

2017 年 6 月 15 日

コメント済み:

dpb
2017 年 6 月 16 日

Community Treasure Hunt

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

Start Hunting!

Translated by