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 Kommentar

Jan
Jan am 21 Dez. 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".

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Jan
Jan am 21 Dez. 2015

0 Stimmen

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

Weitere Antworten (1)

chk2
chk2 am 21 Dez. 2015

0 Stimmen

thanks for the fast answer!

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 21 Dez. 2015

Beantwortet:

am 21 Dez. 2015

Community Treasure Hunt

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

Start Hunting!

Translated by