plot a surface inside a circle of radius R
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a matrix T, which represents cornea local thickness. I wan to clean up the borders and plot T inside a circle or radius r ( turn image on the left side onto image on the right side).


0 commentaires
Réponse acceptée
Voss
le 25 Fév 2022
Modifié(e) : Voss
le 25 Fév 2022
You can set the elements of T beyond a certain distance from the origin (i.e., the center of the circle) to NaN so they don't show up.
% first, make a rough approximation to your initial
% image because I do not have your data:
r = 5.7;
x = -r:0.01:r;
y = -r:0.01:r;
[X,Y] = meshgrid(x,y);
T = (X.^2+Y.^2)/r^2;
surf(X,Y,T,'EdgeColor','none');
view([0 90]);
set(gca(),'CLim',[0.3 1]);
colormap('jet');
colorbar();
xlabel('X');
ylabel('X');
title('Thickness');
% NaNs don't show up in the surface plot, so to make the region outside the
% circle disappear:
T(X.^2+Y.^2 > r^2) = NaN;
% and plot it the same way (but make the axes invisible)
figure();
surf(X,Y,T,'EdgeColor','none');
view([0 90]);
set(gca(),'CLim',[0.3 1],'Visible','off'); % turn off the axes
colormap('jet');
colorbar();
2 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Surface and Mesh Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!