vectorize for loop on plotting

hi!
I would like to get some help to vectorize this 'for' loop:
for k = 1:length(tempStructs1{1,1})
sPoint_ePoint =[ tempStructs1{1,1}(k).point1 ; tempStructs1{1,1}(k).point2 ];
plot(sPoint_ePoint(:,1),sPoint_ePoint(:,2),'LineWidth',2,'Color','blue');
end
sPoint_ePoint is a column vector of 2 cells. Each cell contains one point. those 2 points represents a line that i want to plot.
I tried to vectorize the loop but i'm stuck... I can't make the program plot the lines appropriately, i think that happens because there is no 'k' (the looping variable) in this line of code:
plot(sPoint_ePoint(:,1),sPoint_ePoint(:,2),'LineWidth',2,'Color','blue');
and one more question: How can I know when the vectorized loop ends? there is no 'end' statement...
thanks!

1 comentario

Jan
Jan el 21 de Dic. de 2015
The question does not make sense. There is an end statement. In addition "vectorizing" and "loops" are complementary, so it is not meaningful to ask for the "end of the vectorized loop".

Iniciar sesión para comentar.

 Respuesta aceptada

Jan
Jan el 21 de Dic. de 2015
Vectorizing is useful, when the values of arrays are processed. Then operations on the arrays are faster than processing the array in chunks or elementwise in a loop. But in your case the bottleneck is the plot command. Although plot can operate on matrices also, this seems not applicable in your case.
Some simplifications might improve the readability of the code:
data = tempStructs1{1,1};
for k = 1:length(data)
plot(data(k).point1, data(k).point2, 'LineWidth', 2, 'Color', 'b');
end

Más respuestas (1)

chk2
chk2 el 21 de Dic. de 2015

0 votos

thanks for the fast answer!

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Preguntada:

el 21 de Dic. de 2015

Respondida:

el 21 de Dic. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by