MATLAB Answers

how to plot for loop using concatenation to increase performance

2 views (last 30 days)
Viper
Viper on 8 Apr 2020
Answered: darova on 8 Apr 2020
I have the following for loop to plot vectors from a M by 3 matrix of points, known as A
for i=1:length(A)-512
plot3([A(i,1) A(i+512,1)],[A(i,2) A(i+512,2)],[A(i,3) A(i+512,3)],'-','MarkerSize',10)
hold on
end
such that each point is connected to the one 512 points after it. (sets of 512 points form 2D cross sections, and I'm connecting each cross section to the next)
However as length(A) in my dataset is around 20e3, the plot takes a while to generate, and the performance is poor when rotating.
Is there such a way to plot this in a more efficient manner using data concatenation or other methods?

  0 Comments

Sign in to comment.

Answers (1)

darova
darova on 8 Apr 2020
Try to plot all together at once
n = size(A,1);
fv.vertices = A;
fv.faces = [1:n-512; 512+1:n]';
patch(fv)

  0 Comments

Sign in to comment.

Sign in to answer this question.

Products


Release

R2018a

Translated by