Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

isosurface function MATLAB usage

Tags:

plot

matlab

3d

Hi can any one give me a simple example of how to use the isosurface function in MATLAB. The example given if you type help isosurface is quite confusing. Searching on google did not help as no one gives simple examples anywhere. All of them use predefined functions like flow.

For starters, suppose i have points (x,y,z) where z=0 and at each point I define a constant function f(x,y,z)=6. So if I use the isosurface function on the isovalue 6 I would like MATLAB to give me a 3d plot with the XY plane highlighted in some colour, say green.

like image 978
smilingbuddha Avatar asked Feb 03 '26 03:02

smilingbuddha


2 Answers

I don't quite understand your example, but here's how you use isosurface to draw a sphere:

%# create coordinates
[xx,yy,zz] = meshgrid(-15:15,-15:15,-15:15);
%# calculate distance from center of the cube
rr = sqrt(xx.^2 + yy.^2 + zz.^2);

%# create the isosurface by thresholding at a iso-value of 10
isosurface(xx,yy,zz,rr,10);

%# make sure it will look like a sphere
axis equal 

enter image description here

like image 110
Jonas Avatar answered Feb 04 '26 15:02

Jonas


The example you gave is very uninteresting, in fact maybe even problematic.

By collapsing all points to z=0, you no longer can/need to use ISOSURFACE, and CONTOUR should be called instead. Even then, a constant function f(X,Y)=6 won't show anything either...

Since @Jonas already showed how to use ISOSURFACE, here is an example for the CONTOUR function:

%# create a function to apply to all X/Y coordinates
[X,Y] = meshgrid(-2:0.1:2,-1:0.1:1);
f = @(X,Y) X.^3 -2*Y.^2 -3*X;

%# plot the function surface
subplot(121), surfc(X,Y,f(X,Y))
axis equal, daspect([1 1 3])

%# plot the iso-contour corresponding to where f=-1
subplot(122), contour(X,Y,f(X,Y),[-1 -1]), 
axis square, title('Contour where f(X,Y)=-1')

enter image description here

like image 43
Amro Avatar answered Feb 04 '26 15:02

Amro



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!