このグラフの描画に関するコードの誤ってる点をおしえてください
显示 更早的评论
このコードの誤っている点を教えてください
以下のグラフを書きたいのです。
また、グラフの囲む部分に色を塗りたいのですがどうすれば良いでしょうか。
<コード>
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 个评论
動きますよ
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
2022-2-23
>縦横のマス目のメモリの比を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
2022-2-24
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 イベント関数 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
