how to convert power-law plot to loglog plot

 Risposta accettata

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 Commenti

Xin Zhang
Xin Zhang il 16 Giu 2017
Modificato: dpb il 16 Giu 2017
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;
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)])
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!
I would like to see the plot of x from 10 - 100,000 and y from 1 - 1,000.
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.
I See, thank you!
And, if you do get stuck, we're here...but there should be ample bread crumbs already... :)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Networks in Centro assistenza e File Exchange

Prodotti

Richiesto:

il 15 Giu 2017

Commentato:

dpb
il 16 Giu 2017

Community Treasure Hunt

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

Start Hunting!

Translated by