Filter löschen
Filter löschen

MATLAB plotting undefined points

5 Ansichten (letzte 30 Tage)
Patrick Faulkner
Patrick Faulkner am 17 Okt. 2023
Kommentiert: Patrick Faulkner am 17 Okt. 2023
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:

Akzeptierte Antwort

Dyuman Joshi
Dyuman Joshi am 17 Okt. 2023
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 Kommentar
Patrick Faulkner
Patrick Faulkner am 17 Okt. 2023
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!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by