Convert cross sectional data into surface

3 vues (au cours des 30 derniers jours)
Hassan Qandil
Hassan Qandil le 19 Août 2018
Commenté : Star Strider le 8 Oct 2020
Hi, I have a set of cross sectional data distribution on a certain surface:
[5.8645 11.4836 12.6726 11.587 11.3566 10.2168 9.8317 10.0888 10.6236 10.8221 10.8221 10.6236 10.0888 9.8317 10.2168 11.3566 11.587 12.6726 11.4836 5.8645]
It's symmetrical around the center, how can I create a surface from this data?
  3 commentaires
Hassan Qandil
Hassan Qandil le 19 Août 2018
yes, this is a cross sectional energy distribution over a circular surface of radius 25 mm, so the corresponding cross sectional length would be linspace(-25,25,20)
Hassan Qandil
Hassan Qandil le 19 Août 2018
so technically the x and y data is symmetrical (circle). and the given data above is the z data (though it is just the cross section value of the surface)

Connectez-vous pour commenter.

Réponse acceptée

Star Strider
Star Strider le 26 Août 2018
Here is one possible approach.
The Code
V = [5.8645 11.4836 12.6726 11.587 11.3566 10.2168 9.8317 10.0888 10.6236 10.8221 10.8221 10.6236 10.0888 9.8317 10.2168 11.3566 11.587 12.6726 11.4836 5.8645];
Av = linspace(-1, 1, numel(V))*(10*pi/numel(V));
Rv = linspace(-1, 1, numel(V));
[R,A] = meshgrid(Rv,Av);
Z = ones(numel(Av),1)*V;
[X,Y,Z] = pol2cart(A, R, Z);
figure
surf(X, Y, Z)
grid on
shading(gca,'interp')
view(-30, 50)
The Plot
You will have to experiment to get the result you want, including labeling the axis ticks as you want them.
This will get you started.
  4 commentaires
Taiwo Ajayi
Taiwo Ajayi le 8 Oct 2020
Hi Star Strider,
What if you had a non symmetric surface i.e. that is several crossections of vectors V1, V2, ... Is there anyway we can interpolate those crossections to come up with a surface?
Star Strider
Star Strider le 8 Oct 2020
Taiwo Ajayi — It might be possible to interpolate them using griddata or griddedinterpolant, or some other appropriate interpolation function. It would likely be necessary to concatenate them into a matrix first. I’m speculating here, because I have no idea what the data are. It will be necessary to experiment to see what works.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by