I know Matlab has a function called cylinder to create the points for a cylinder when number of points along the circumference, and the radius length. What if I don't want a unit cylinder, and also don't want it to center at the default axis (for example along z-axis)? What would be the easiest approach to create such a cylinder? Thanks in advance.
                +4 
                A: 
                
                
              Multiply the points by your favourite combination of a scaling matrix, a translation matrix, and a rotation matrix.
                  Carl Norum
                   2010-03-11 00:00:07
                
              Thanks. That's actually what I somewhat did, although could be done more elegantly using the matrices as mentioned.
                  stanigator
                   2010-03-11 00:22:40
                +1 for a good general way of achieving any transformation.
                  Ramashalanka
                   2010-03-11 01:01:21
                
                +4 
                A: 
                
                
              The previous answer is fine, but you can get matlab to do more of the work for you (because the results of cylinder separate x,y,z components you need to work a little to do the matrix multiplication for the rotation).  To have the center of base of the cylinder at [x0 y0 z0], scaled by [xf yf xf] (use xf=yf unless you want an elliptic cylinder), use:
[x y z] = cylinder;
h=mesh(x*xf+x0,y*yf+y0,z*zf+z0)
If you also want to rotate it so it isn't aligned along the z-axis, use rotate. For example, to rotate about the x-axis by 90 degrees, so it's aligned along the y-axis, use:
rotate(h,[1 0 0],90)
                  Ramashalanka
                   2010-03-11 00:27:34
                
              One more note. How do I retrieve the points from h once I created the mesh and rotate using the Matlab functions?
                  stanigator
                   2010-03-11 09:25:56
                @stanigator: `get(h,'XData')`, `get(h,'YData')` and `get(h,'ZData')`. These are in the same form (default `2 x 21`) as the results of `cylinder`.
                  Ramashalanka
                   2010-03-11 09:53:09