transform a radius into a circle

6 views (last 30 days)
Nicolas
Nicolas on 26 Dec 2014
Commented: Nicolas on 28 Dec 2014

I have some data along a line in a Cartesian coordinate. I know I can transform the Cartesian into polar coordinates using cart2pol. I would like to know how could I create a grid to map a quarter circle with the data along the initial line (to have a top view)?

thank you

  1 Comment
Nicolas
Nicolas on 26 Dec 2014
Edited: Nicolas on 26 Dec 2014
I have rho (2991*1), data (2991*1), and I created theta = (0:0.5:90)*pi/180; to represent a quarter of a circle. I can mesh rho and theta together using meshgrid. but then I don't know how to use my data to be correlated to the mesh?

Sign in to comment.

Accepted Answer

Nicolas
Nicolas on 28 Dec 2014
here is the solution:
%%Example data
x = (2:0.1:8);
data = sin(x);
%%Shift the values towards the center, so you get a circle instead of an annulus.
x = x-min(x);
%%Your meshgrid generation code.
rho = x;
theta = (0:0.5:90)*pi/180;
[th, r] = meshgrid(theta, rho);
%%Plotting the values
surf(r.*cos(th), ...
r.*sin(th), ...
repmat(data(:), 1, size(th,2)), ...
'linestyle', 'none');
view(2);
axis equal tight;
colorbar;

More Answers (2)

Star Strider
Star Strider on 26 Dec 2014
The polar plot may be what you want.

Image Analyst
Image Analyst on 26 Dec 2014
  5 Comments
Image Analyst
Image Analyst on 28 Dec 2014
What do you want out? An image (2D array)? A plot/graph?
All I can think of was a not very efficient method based on the FAQ. I hesitate to show it because it's not fast, efficient, or clever. Hopefully someone else will come up with a fast and clever method.
Nicolas
Nicolas on 28 Dec 2014
thank you, I didn't know how to explain properly what I wanted. by digging I found out the repmat option.. and that's what I was looking for.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!