using fimplicit function to plot

11 Ansichten (letzte 30 Tage)
Maria Galle
Maria Galle am 2 Okt. 2020
Bearbeitet: John D'Errico am 2 Okt. 2020
I'm trying to make a plot using the fimplicit function but the figure is empty.
zf(1) = figure(1);
za(1) = axes;
c = -4:2:4;
fimplicit(@(x,y) y.^2 - x.^2- c);

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 2 Okt. 2020
For a single graph, c must be a scalar. If you want to plot the graph for all values in c, you can use for-loop or arrayfun() (kind of implicit for-loop)
zf(1) = figure(1);
za(1) = axes;
hold(za(1))
C = -4:2:4;
arrayfun(@(c) fimplicit(@(x,y) y.^2 - x.^2 - c), C);
  2 Kommentare
Maria Galle
Maria Galle am 2 Okt. 2020
How would I plot the graph for all values of c using a for loop? I tried writing the code but get the plot for one value of c.
for c=-4:2:4
zf(1) = figure(1);
za(1) = axes;
fimplicit(@(x,y) y.^2 - x.^2- c);
end
Ameer Hamza
Ameer Hamza am 2 Okt. 2020
Move figure() and axes() out of for loop
zf(1) = figure(1);
za(1) = axes;
hold(za(1));
for c=-4:2:4
fimplicit(@(x,y) y.^2 - x.^2- c);
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

John D'Errico
John D'Errico am 2 Okt. 2020
Bearbeitet: John D'Errico am 2 Okt. 2020
As an alternative to the use of fimplicit, you can simply think of this as a contour plot. That is essentially all fimplicit does.
c = -4:2:4;
fxy = @(x,y) x.^2 - y.^2;
H = fcontour(fxy,[-5,5, -5,5],'LevelList',c);
Either way works. A contour plot has the virtue that you can create all level lines in one call and no need to loop.

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by