複数の陰関数を一度にプロットする方法

fimplicitを使って、円グラフを例えば3つ同時に描画させるため、つぎのコードを記載しましたが、
うまく動きません。エラーメッセージは次の通りでです。「警告: 関数が配列入力で予期せぬ動作をします。パフォーマンスを向上させるために、入力引数と同じサイズと形状をもつ出力を返すように関数を適切にベクトル化してください。」
どこがまずいのか、ご教示をよろしくお願いいたします。
Ia_start = 1
Ia_end = 5
Ia_count = 2
Ia = Ia_start : Ia_count : Ia_end
figure
fimplicit(@(id,iq) id.^2+iq.^2 - Ia.^2)

 Risposta accettata

Dyuman Joshi
Dyuman Joshi il 20 Set 2023

1 voto

You will have to draw the 3 implicit curves separetly -
Ia_start = 1;
Ia_end = 5;
Ia_count = 2;
figure
hold on
for Ia = Ia_start : Ia_count : Ia_end
fimplicit(@(id,iq) id.^2+iq.^2 - Ia.^2);
end
hold off
xticks(-5:5)

1 Commento

高木 範明
高木 範明 il 20 Set 2023
Thank you for your prompt guidance.
I understand that it is difficult to plot all at once in fimplicit. I will try to deal with it in the way you have taught me.

Accedi per commentare.

Più risposte (1)

Atsushi Ueno
Atsushi Ueno il 20 Set 2023

1 voto

This is another method. Creating a function handle (cell) array allows a single call to the fimplicit function.
Ia_start = 1;
Ia_end = 5;
Ia_count = 2;
Ia2 = Ia_start : Ia_count : Ia_end;
fun = arrayfun(@(Ia) @(id,iq) id.^2+iq.^2 - Ia.^2, Ia2, 'uni', false);
figure
fimplicit(fun);

1 Commento

高木 範明
高木 範明 il 21 Set 2023
Thank you for sharing your wonderful method with me. I was not aware of this method. Thank you again.

Accedi per commentare.

Categorie

Scopri di più su MATLAB in Centro assistenza e File Exchange

Prodotti

Release

R2023b

Community Treasure Hunt

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

Start Hunting!