フィルターのクリア

MATLAB plotting undefined points

5 ビュー (過去 30 日間)
Patrick Faulkner
Patrick Faulkner 2023 年 10 月 17 日
コメント済み: Patrick Faulkner 2023 年 10 月 17 日
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 Center および File ExchangeCalculus についてさらに検索

製品


リリース

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by