Creating a circular contour from radial datasets

I've never used contours in Matlab, and I made 0 progress on my case so far. Here's my problem:
My data is stored in multiple radial datasets (six in this example), the discrete points are defined in polar coordinates and/or cartesian. I'd prefer cartesian. My data points are shown in the left picture.
For every Point [y,z], i have a value for my contour data. Lets call it [Fz]. Now i want to create a contour plot, that looks like the right picture. In the "real" case, I have 120 radial datasets 0°:3°:360°, so i do not really rely on interpolation that makes the contour look like a perfect circle as shown in the right picture. What i do need, is the hole in the middle. The contour shall only be plotted for inbetween r_min and r_max.
I have attached my example workspace. Blade1, Blade2, Blade3,... are the radial stations at 0°:60°:360°
Thanks in advance, i really gave up on this one..

 Respuesta aceptada

S = load('example.mat');
Blades = [S.Blade1 S.Blade2 S.Blade3 S.Blade4 S.Blade5 S.Blade6];
Blades_plot = Blades([1:end 1]);
y = [Blades_plot.y];
z = [Blades_plot.z];
Fx = [Blades_plot.Fx];
contourf(y,z,Fx)

3 comentarios

Marc
Marc el 16 de Feb. de 2024
Wow. I'm ashamed of how simple your solution is, i was struggling with meshgrid(), griddata() etc. and never understood whats going on. Thank you so much!
Voss
Voss el 16 de Feb. de 2024
You're welcome!
Yet another nice answer from @Voss. You can like it.
When you are plotting a physical object, you probably want the aspect ratio to be correct, i.e. 1 cm along x axis equals 1 cm along y. Try
axis equal
to make it so.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Contour Plots en Centro de ayuda y File Exchange.

Productos

Versión

R2021a

Preguntada:

el 16 de Feb. de 2024

Comentada:

el 16 de Feb. de 2024

Community Treasure Hunt

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

Start Hunting!

Translated by