why my plot is not correct?
4 次查看(过去 30 天)
显示 更早的评论
here is my code
x = -5:0.1:5
y = x.^(1/3)
plot(x,y)
回答(2 个)
Paul
2021-4-11
If you're looking for a plot with odd symmetry, try:
plot(x,nthroot(x,3)) % check doc nthroot for details
0 个评论
DGM
2021-4-11
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')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/579742/image.png)
2 个评论
DGM
2021-4-11
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.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!