Azzera filtri
Azzera filtri

Plotting implicit functions via fimplicit

4 visualizzazioni (ultimi 30 giorni)
Michael Haag
Michael Haag il 20 Set 2023
Modificato: Voss il 20 Set 2023
Hello,
I have the following anonymous function:
L = 5000;
F = 11500;
E = 70000;
cP = @(B,H)[H.*(B.^-1)-6, 6.*F.*L.*((B.*H.^2).^-1)-50,...
4.*F.*L.^3.*((E.*B.*H.^3).^-1)-12.7];
Now I want to plot each curve in the vector via
interval = [0 500 0 500];
fimplicit(cP,interval);
This does not work. I suppose fimplicit expects only one curve and could not handle the vector containig the curves.
So, how can I access the each curve, i.e H.*(B.^-1)-6=0, which are in the vector and pass it to fimplicit so that fimplicit can handle it?
Thanks in advance,
Michael

Risposta accettata

Voss
Voss il 20 Set 2023
Apparently (this behavior appears to be undocumented), you can pass a cell array of function handles to fimplicit, as in:
L = 5000;
F = 11500;
E = 70000;
interval = [0 500 0 500];
% cP = @(B,H)[H.*(B.^-1)-6, 6.*F.*L.*((B.*H.^2).^-1)-50,...
% 4.*F.*L.^3.*((E.*B.*H.^3).^-1)-12.7];
cP = { ...
@(B,H)H.*(B.^-1)-6, ...
@(B,H)6.*F.*L.*((B.*H.^2).^-1)-50, ...
@(B,H)4.*F.*L.^3.*((E.*B.*H.^3).^-1)-12.7, ...
}
cP = 1×3 cell array
{@(B,H)H.*(B.^-1)-6} {@(B,H)6.*F.*L.*((B.*H.^2).^-1)-50} {@(B,H)4.*F.*L.^3.*((E.*B.*H.^3).^-1)-12.7}
figure
fimplicit(cP,interval);
Since it is undocumented, I don't which MATLAB versions support this, so you may have to use each one separately:
figure
for ii = 1:numel(cP)
fimplicit(cP{ii},interval);
hold on
end
  2 Commenti
Michael Haag
Michael Haag il 20 Set 2023
Modificato: Michael Haag il 20 Set 2023
@Voss: Perfect thank you, this helps!
Interesting that fimplicit accepts a cell array of function handles.
Voss
Voss il 20 Set 2023
Modificato: Voss il 20 Set 2023
You're welcome!
Yeah, I was surprised to discover (accidentally, while writing my answer) that the cell array of function handles works. The documentation lists only a function handle as the supported class for the first input to fimplicit (no mention of cell arrays):

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by