Best way to convert from a 1D matrix to a 3D matrix with isotropic distribution

4 views (last 30 days)
Catherine Scott
Catherine Scott on 4 Feb 2014
Commented: Catherine Scott on 4 Feb 2014
I have 1D data which has values at equally spaced intervals from r=0 to r=r, where r is a distance i.e.
r x
0.0 1.16000
0.2 1.21000
0.5 1.24000
0.7 1.25000
0.9 1.24000
1.2 1.22000
1.4 1.21000
1.6 1.18000
etc
This data is isotropic (from r=0) in three dimensions, so I want to go from a 1D dataset to 3D. I thought that the best option may be to convert to spherical polar coordinates using the function cart2pol and writing a For loop to loop around all values of theta and phi, filling in the values, then convert back to cartesian coodinates. However, I know that for loops can be time consuming computationally in Matlab and wondered if there was a better way of doing it? I am using Matlab version R2011B with the image processing toolbox. Thanks!
  2 Comments
Catherine Scott
Catherine Scott on 4 Feb 2014
A good point, I don't actually need to convert to spherical polar coordinates because I already have r (which is rho in the Matlab documentation) and I can assume that the data I have is at theta=phi=0 (where theta= azimuth and phi=elevation). The next bit still stands I believe, so I would then loop over all possible values of theta and phi, then convert to cartesian (using sph2cart). So is there a more efficient method for this part? Apologies for the mix up and thanks for the comment.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!