How can I plot multiple rectangles (or circles) using the rectangle function without using a for loop?
22 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ekim Ekiz
le 31 Mar 2020
Réponse apportée : Athul Prakash
le 3 Avr 2020
I need to plot multiple circles using the built in rectangle function. I have matrices that contain the x and y coordinates of the points that I want the center of my circle to be on. d is the diameter of the circles. The code I am using is below. I want to plot the circles without using the for loop in order to save time.
for i = 1 : size(x,1)
pos = [x(i)-d/2, y(i)-d/2, d, d];
rectangle('Position',pos,'Curvature',[1 1],'FaceColor','c','EdgeColor','k','LineWidth',1);
end
0 commentaires
Réponse acceptée
Athul Prakash
le 3 Avr 2020
I don't think there is a way to 'vectorize' this code, you can't eliminate this for loop and achieve much of a speed up. But how about the following:
If rendering the plot is the time-consuming part of your code, you may try generating plot points for all circles into the same X,Y arrays and calling plot() once at the end. Intead of the rectangle function, each circle can be a set of enough number of points which you can calculate using the circle equation.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Formatting and Annotation dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!