How to define which variable is x and which variable is y axis?

5 visualizzazioni (ultimi 30 giorni)
I have an equation like "2*c^2 - 4*b = 0" with b ranging from 0 to 10. I want to plot a graph of b verses c with b on the x axis. How would I tell the program to plot b on the x axis and c on the y axis?

Risposte (4)

Mischa Kim
Mischa Kim il 7 Ott 2014
Modificato: Mischa Kim il 7 Ott 2014
John, simply use
plot(b,c)
The first argument is the x the second the y axis. Or, if you want to show both solution branches
b = 0:0.1:10;
c = sqrt(2*b);
plot(b,c,b,-c)

Star Strider
Star Strider il 7 Ott 2014
First, a bit of algebra to create ‘c’ as a function of ‘b’, then it’s simply another plot:
b = linspace(0,10);
c = [-sqrt(2*b); sqrt(2*b)];
figure(1)
plot(b, c)
grid
  4 Commenti
Star Strider
Star Strider il 7 Ott 2014
My pleasure!
The sincerest expression of appreciation here on MATLAB Answers is to Accept the Answer that most closely solves your problem.
Andrew Reibold
Andrew Reibold il 7 Ott 2014
Modificato: Andrew Reibold il 7 Ott 2014
Alternatively, PayPal is accepted too xD

Accedi per commentare.


John
John il 7 Ott 2014
Thanks that clears up a lot however if I can't separate b into one term is there a way to plot it. This is the actual equation:
V=[pi+arctan(b/(1-b))^(1/2)+arctan((b+2)(1-b))^(1/2)]/(1-b)^(1/2)
I want V to be the x axis from 0 to 15. I want to solve for b and plot the results on the y axis.

Matt J
Matt J il 7 Ott 2014
Modificato: Matt J il 7 Ott 2014
f = @(V,b)V-(pi+atan(b./(1-b)).^(1./2)+atan((b+2).*(1-b)).^(1./2))./(1-b).^(1./2);
ezplot(f,[0,1.1,15,100]);
  3 Commenti
Mohammad Abouali
Mohammad Abouali il 7 Ott 2014
Modificato: Mohammad Abouali il 7 Ott 2014
Yes, with x being V and y being b. so xmin=0 xmax=15
and again put b=1.1 and check what your V turns out to be.
ff=@(b) (pi+atan(b./(1-b)).^(1./2)+atan((b+2).*(1-b)).^(1./2))./(1-b).^(1./2);
V would be a complex number
He wants 0<V<15 on x axis
Matt J
Matt J il 7 Ott 2014
Modificato: Matt J il 7 Ott 2014
Right you are (although I think it is the real part and not the norm that is being plotted). Here's a modification that fixes that issue,
function doPlot
ezplot(@(V,b) f(V,b),[0,15,0,1]);
function fval = f(V,b)
fval = V-(pi+atan(b./(1-b)).^(1./2)+atan((b+2).*(1-b)).^(1./2))./(1-b).^(1./2);
fval=fval/(imag(fval)==0);
end
end

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by