このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
fplot
シンボリック式または関数をプロット
構文
説明
fplot(
は、f
,[xmin xmax]
)f
を区間 [xmin xmax]
でプロットします。
fplot(
は、xt = x(t) および yt = y(t) を、指定された範囲 xt
,yt
,[tmin tmax]
)[tmin tmax]
でプロットします。
fplot(___,
は、1 つ以上の Name,Value
)Name,Value
引数ペアを使用して、ラインのプロパティを指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。Name,Value
ペアの設定はプロットされたすべてのラインに適用されます。個々のラインにオプションを設定するには、fplot
によって返されるオブジェクトを使用します。
fplot(
は、現在の座標軸 ax
,___)gca
ではなく ax
によって指定される座標軸にプロットします。
は、プロットのタイプによって、関数ライン オブジェクトまたはパラメーター化されたライン オブジェクトを返します。このオブジェクトを使用して、特定のラインのプロパティのクエリと変更を行います。詳細は FunctionLine のプロパティ および ParameterizedFunctionLine のプロパティ を参照してください。fp
= fplot(___)
例
シンボリック式のプロット
tan(x)
を既定の範囲 [-5 5]
でプロットします。fplot
は既定では極を表示します。詳細は、名前と値の引数の ShowPoles
の引数を参照してください。
syms x
fplot(tan(x))
シンボリック関数のプロット
シンボリック関数 を既定の範囲 [-5 5]
にわたってプロットします。
syms f(x)
f(x) = cos(x);
fplot(f)
パラメトリック曲線のプロット
パラメトリック曲線 および をプロットします。
syms t
x = cos(3*t);
y = sin(2*t);
fplot(x,y)
プロット区間の指定
プロット区間を fplot
の 2 番目の引数に与えることで、区間 の をプロットします。
syms x
fplot(sin(x),[-pi/2 pi/2])
同じ Figure への複数のラインのプロット
入力をベクトルとして渡すか、または hold on
を使用すると、複数のラインを連続して同じ Figure にプロットできます。LineSpec
および名前と値の引数を指定すると、すべてのラインに適用されます。個々のプロットにオプションを設定するには、fplot
によって返される関数ハンドルを使用します。
subplot
を使用して、Figure を 2 つのサブプロットに分割します。第 1 サブプロットで、ベクトル入力を使用して と をプロットします。第 2 サブプロットで、hold on
を使用して および をプロットします。
syms x subplot(2,1,1) fplot([sin(x) cos(x)]) title('Multiple Lines Using Vector Inputs') subplot(2,1,2) fplot(sin(x)) hold on fplot(cos(x)) title('Multiple Lines Using hold on Command') hold off
ライン プロパティの変更およびマーカーの表示
ライン間に位相シフトを指定して 3 つの正弦曲線をプロットします。最初のラインにはライン幅 2
を使用します。2 番目には円マーカーをもつ赤い破線のライン スタイルを使用します。3 番目にはアスタリスクのマーカーをもつシアンの一点鎖線のライン スタイルを使用します。凡例を表示します。
syms x fplot(sin(x+pi/5),'Linewidth',2) hold on fplot(sin(x-pi/5),'--or') fplot(sin(x),'-.*c') legend('show','Location','best') hold off
プロットの解像度の制御
MeshDensity
オプションを使用して、プロットの解像度を制御します。MeshDensity
を増やすとプロットがより滑らかで正確になり、減らすとプロット速度が上がります。
subplot
を使用して、Figure を 2 つに分割します。第 1 サブプロットで、x = 2.1
から x = 2.15
までステップ関数をプロットします。プロットの解像度は、ステップ関数を検知するには低すぎます。第 2 サブプロットで MeshDensity
を 39
に増やしてこれを修正します。プロットはステップ関数を検知し、MeshDensity
を増やすことでプロットの解像度が向上することが示されました。
syms x stepFn = rectangularPulse(2.1, 2.15, x); subplot(2,1,1) fplot(stepFn); title('Default MeshDensity = 23') subplot(2,1,2) fplot(stepFn,'MeshDensity',39); title('Increased MeshDensity = 39')
プロットの作成後の変更
sin(x)
をプロットします。fplot
がプロット オブジェクトを返すように出力を指定します。
syms x
h = fplot(sin(x))
h = FunctionLine with properties: Function: sin(x) Color: [0 0.4470 0.7410] LineStyle: '-' LineWidth: 0.5000 Show all properties
ドット表記を使用してプロパティを設定し、既定の青い線を赤い破線に変更します。同様に、'x'
マーカーを追加して、マーカーの色を青色に設定します。
h.LineStyle = '--'; h.Color = 'r'; h.Marker = 'x'; h.MarkerEdgeColor = 'b';
タイトルと座標軸ラベルの追加、および目盛りの書式設定
から の について、 をプロットします。タイトルと座標軸ラベルを追加します。x 軸の範囲を pi/2
の間隔にして、x 軸の目盛りを作成します。XTick
プロパティを使用して、これらの目盛りを表示します。arrayfun
を使用して texlabel
を S
に適用して、x 軸ラベルを作成します。XTickLabel
プロパティを使用して、これらのラベルを表示します。
プロットに LaTeX を使用する方法については、latex
を参照してください。
syms x fplot(sin(x),[-2*pi 2*pi]) grid on title('sin(x) from -2\pi to 2\pi') xlabel('x') ylabel('y') ax = gca; S = sym(ax.XLim(1):pi/2:ax.XLim(2)); ax.XTick = double(S); ax.XTickLabel = arrayfun(@texlabel,S,'UniformOutput',false);
ズームでの再評価
プロットにズーム インすると、fplot
はプロットを自動的に再評価します。このズームでの再評価を使用すると、より小さなスケールでは表示されていなかった細部が明らかになります。
-2 < x < 2
および -0.02 < y < 0.02
の x^3*sin(1/x)
をプロットします。zoom
を使用してプロットにズームインして、drawnow
を使用してプロットを再描画します。ズームでの再評価が行われるため、fplot
でより小さなスケールにおける細部が現れます。ズームを 6 回繰り返し、より小さなスケールにおける細部を明らかにします。アニメーションを再生するには、イメージをクリックします。
syms x fplot(x^3*sin(1/x)); axis([-2 2 -0.02 0.02]); for i=1:6 zoom(1.7) pause(0.5) end
アニメーションの作成
アニメーションを作成するには、表示されている式を Function
、XFunction
および YFunction
のプロパティを使用して変更した後、drawnow
を使用してプロットを更新します。GIF にエクスポートする方法については、imwrite
を参照してください。
変数 i を 0.1 から 3 まで変えることによって、パラメトリックな曲線をアニメーション化します。
アニメーションを再生するには、イメージをクリックします。
syms t fp = fplot(t, t); axis([-15 15 -15 15]) for i=0.1:0.05:3 fp.XFunction = i.*t.*sin(i*t); fp.YFunction = i.*t.*cos(i*t); drawnow end
入力引数
出力引数
ヒント
fplot
がf
の中に有限個の不連続を検知した場合、fplot
は範囲を拡張してそれらを表示します。
バージョン履歴
R2016a で導入