Plot3D with RegionFunction equivalent in MATLAB

Suppose you want to plot a function g depending on two variables x, y over a range where y depends on x.

Using Mathematica this can be done in essentially one line (not counting the definition of the function g and the lower and upper bounds f1 and f2).

f1[y_] := y^3 - 1
f2[y_] := y^3 + 1
g[x_, y_] := x^2 + y^2
 
Plot3D[g[x, y], {x, -2, 2}, {y, -2, 2},
 RegionFunction -> Function[{x, y, z}, f1[x] < y < f2[x]]]

The output will be like this.

Mathematica output

I am not aware of an equivalent function built directly into MATLAB. However, the same functionality can be achieved with some manual coding.

The essential idea is to create a surface in 3D space and plot this using MATLAB's surf function. I put the code in a gist, which you can find/fork/comment here.

The output looks like this.

MATLAB output

Published Dienstag, 19. Januar 2016 17:07 von Jan-Cornelius Molnar

Kommentare

Keine Kommentare