MATLAB plotting undefined points

5 次查看(过去 30 天)
I'm trying to generate plots with trigonometric functions, but MATLAB keeps drawing points that are undefined. In this case, for csc(x), it is generating vertical lines (not simply asymptotes) at all positive multiples of pi.
I have tried modifying my code so it only plots up to pi-0.1, the starts again at pi+0.1. I have gone to several decimals, but this way I can't get asymptotes, only gaps. I'm trying to get functions with the asymptotes and without those undefined points being graphed.
Bad plot:
fairly normal code:

采纳的回答

Dyuman Joshi
Dyuman Joshi 2023-10-17
An alternative is to use the corresponding numeric functions -
figure
fplot(@csc, [-10 10], 'b')
hold on
fplot(@sin, [-10 10], 'r')
As to the reason, why the output from the symbolic csc function is such, I do not have an explaination at the moment.
And, the plot/behaviour of symbolic csc function with one of the plot interval specified as a multiple of pi is weird -
syms x
figure
%Example taken from the documentation of symbolic csc function
fplot(csc(x),[-4*pi 4*pi],'b')
grid on
  1 个评论
Patrick Faulkner
Patrick Faulkner 2023-10-17
I would love to know the reason, but at the very least this works for what I need.
In order to integrate it into my symbolic code (just because I prefer symbolic for its functionality), I was able to replace:
f1 = fplot(y1, [startCount, stopCount], '-r');
f2 = fplot(y2, [startCount, stopCount], '-b');
with:
f1 = fplot(matlabFunction(y1), [startCount, stopCount], '-r');
f2 = fplot(matlabFunction(y2), [startCount, stopCount], '-b');
so that it turns symbolic y1 = csc(x) into y1 = @csc for the purpose of plotting. Thanks!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Calculus 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by