このグラフの描画に関するコードの誤ってる点をおしえてください
Afficher commentaires plus anciens
このコードの誤っている点を教えてください
以下のグラフを書きたいのです。
また、グラフの囲む部分に色を塗りたいのですがどうすれば良いでしょうか。
<コード>
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 commentaires
動きますよ
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
le 23 Fév 2022
Atsushi Ueno
le 23 Fév 2022
Modifié(e) : Atsushi Ueno
le 23 Fév 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
le 24 Fév 2022
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur イベント関数 dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
