MATLAB: Isosurface in cylindrical coordinates

cylindricalisosurface

Hi.
How can I plot a 3D surface of the function F(r, theta,z) with 'isosurface'? The cylindrical coordinates are r, theta and z (r is the radius, theta is the angle and z is the axial coordinate)?
A million thanks for your help

Best Answer

Use isosurface normally
[f,v] = isosurface(R,THETA,Z,F,isovalue); % returns faces and vertices
Convert cylindrical coordinates into cartesian
x = v(:,1).*cos(v(:,2));
y = v(:,1).*sin(v(:,2));
z = v(:,3);
Use patch to plot
patch('Faces',f,'Vertices',[x y z])