![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/172791/image.jpeg)
How to draw a log function?
25 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I love function handles in matlab, I can do this for example:
f = @(x,a,b) a*(x.^b);
plot(x,f(x,a,b));
This is so useful! I want to be able to plot log(y)=1+log(x), I tried:
f = @(x) 1+log10(x);
plot(x,f(log10(f(x));
It doesn't however give a straight line, so this syntax might be wrong! Please tell me how I can do it. Thanks.
0 comentarios
Respuestas (3)
John BG
el 23 de Feb. de 2017
is this what you are after?
clc
close all
warning off
z = @(x) 10.^(-.3+(1.75*log10(x)));
y = @(x) (10.^-.3)*(x.^1.75);
x = -100:0.5:100;
plot(x,z(x),'-b','LineWidth',2)
grid on
figure
loglog(x,y(x),'-r','LineWidth',2)
grid on
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/172791/image.jpeg)
.
John BG
0 comentarios
John BG
el 2 de Mayo de 2016
Ahmad
try this
f = @(x) 1+log10(x)
x=[-20:.1:20]
y=f(x)
plot(x,y)
plot(x,y);grid on
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/174217/image.jpeg)
If you find this answer of any help solving your question,
please click on the thumbs-up vote link,
thanks in advance
John
Roger Stafford
el 2 de Mayo de 2016
The quantity f(log10(f(x)) does not yield the solution to log10(y) = 1 + log10(x). It is actually equal to
f(log10(f(x)) = f(log10(1+log10(x))) = 1+log10(log10(1+log10(x)))
If you were to take the log10 of that, you certainly would not come back to 1+log10(x).
To solve for y, take 10 to the power of both sides of the equation
y = 10^(log10(y)) = 10^(1+log10(x)) = (10^1)*(10^log10(x)) = 10*x
What could be simpler?
5 comentarios
Roger Stafford
el 2 de Mayo de 2016
Editada: Roger Stafford
el 2 de Mayo de 2016
The plot you show in your previous comment plots log(y) against log(x) or log10(y) against log10(x), I’m not sure which. With the equation log(y) = -.3+1.75*log(x) you will naturally get a straight line with this kind of plot. However, that is not the same thing as plotting y against x. For the equation log(y) = -.3+1.75*log(x) you will NOT get a straight line with y against x. For the equation log(y) = 1 + log(x), or log10’s either one, you WILL get a straight line with y against x. The present or absence of the factor 1.75 makes the difference.
Incidentally you should be careful to distinguish between logarithms base ten and natural logarithms with a base e. In matlab the natural logarithm is indicated by ‘log’ whereas logarithm base ten is indicated by ‘log10’.
Ver también
Categorías
Más información sobre Annotations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!