why my plot is not correct?

here is my code
x = -5:0.1:5
y = x.^(1/3)
plot(x,y)

2 个评论

it is working, but it is giving me wrong number
also there is a Warning: Imaginary parts of complex X and/or Y arguments ignored.

请先登录,再进行评论。

回答(2 个)

If you're looking for a plot with odd symmetry, try:
plot(x,nthroot(x,3)) % check doc nthroot for details
I'm not sure what you intend the correct number to be. You're doing the cube root of negative numbers. They're going to be complex.
By default, plot() will only plot the real component of complex inputs. If you're expecting the plot to be symmetrical, consider plotting abs(y) to get the magnitude of the complex-valued region.
x = -5:0.1:5;
y = x.^(1/3);
h1=plot(x,real(y)); hold on
h2=plot(x,imag(y));
h3=plot(x,abs(y));
legend([h1,h2,h3],'real','imaginary','magnitude','location','southeast')

2 个评论

the^1/3 of negative numbers should be negative right? why both negative and positive side are both positive number?
You probably want Paul's answer below. nthroot() calculates the real root, whereas power() or .^ calculates the complex root. The web docs include such an example.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Line Plots 的更多信息

标签

评论:

DGM
2021-4-11

Community Treasure Hunt

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

Start Hunting!

Translated by