このグラフの描画に関するコードの誤ってる点をおしえてください
Show older comments
このコードの誤っている点を教えてください
以下のグラフを書きたいのです。
また、グラフの囲む部分に色を塗りたいのですがどうすれば良いでしょうか。
<コード>
fplot(@(x) 0.5*cos(2*pi*x)+7/2,[-2,2],"green")
hold on
fplot(@(x) x^4-x^2+6,[-1,1],"green")
hold on
fplot(@(x) 12/(x+1),[1,7],"blue")
hold on
fplot(@(x) 12/(-x+1),[-7,-1],"blue")
hold on
grid on

4 Comments
動きますよ
fplot(@(x) 0.5*cos(2*pi*x)+7/2,[-2,2],"green")
hold on
fplot(@(x) x^4-x^2+6,[-1,1],"green")
hold on
fplot(@(x) 12/(x+1),[1,7],"blue")
hold on
fplot(@(x) 12/(-x+1),[-7,-1],"blue")
hold on
grid on
Yu Horiuchi
on 23 Feb 2022
Atsushi Ueno
on 23 Feb 2022
Edited: Atsushi Ueno
on 23 Feb 2022
>縦横のマス目のメモリの比を1:1にしたいのですが、どうすれば良いのですか?
>また、囲まれている領域に色を塗りたいのですが、どうすれば良いですか?
下記の様に、無名関数と値域を一旦変数に置きました。
wave1rng = [-2, 2]; wave1 = @(x) 0.5*cos(2*pi*x)+7/2;
wave2rng = [-1, 1]; wave2 = @(x) x.^4-x.^2+6;
Ridg1rng = [ 1, 7]; Ridg1 = @(x) 12./(x+1);
Ridg2rng = [-7,-1]; Ridg2 = @(x) 12./(-x+1);
%fplot(wave1, wave1rng, "green"); hold on;
%fplot(wave2, wave2rng, "green");
%fplot(Ridg1, Ridg1rng, "blue");
%fplot(Ridg2, Ridg2rng, "blue");
x = linspace(wave2rng(1),wave2rng(2)); area(x,wave2(x),'EdgeColor','g','FaceColor','g'); hold on;
x = linspace(Ridg1rng(1),Ridg1rng(2)); area(x,Ridg1(x),'EdgeColor','b','FaceColor','b');
x = linspace(Ridg2rng(1),Ridg2rng(2)); area(x,Ridg2(x),'EdgeColor','b','FaceColor','b');
x = linspace(wave1rng(1),wave1rng(2)); area(x,wave1(x),'EdgeColor','g','FaceColor','g');
pbaspect([2 1 1]); xlim([-7 7]); ylim([0 7]); grid on;
途中まで塗ってみましたがこんなんなってしまいます。
なぜこうなったのか、これで良いのか、NOであればどうすれば良いか
要件を定義してからarea関数のドキュメントを読んで考えてみてください。
Yu Horiuchi
on 24 Feb 2022
Accepted Answer
More Answers (0)
Categories
Find more on イベント関数 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
