# plotting N number of lines without for-loops

3 vues (au cours des 30 derniers jours)
Oscar Frick le 22 Juin 2018
Commenté : Dieter Karst le 13 Mai 2020
I have two matrixes of size (N,3), "S" corresponding to line start points "E" to line end points. I want to plot these lines, and know I can do it using
hold on
N = size(S,1);
for i = 1:N
plot3( [S(i,1),E(i,1)] , [S(i,2),E(i,2)] , [S(i,3),E(i,3)] )
end
Is there a way to achieve this without using for-loops? I have heard that inputing matrixes should have Matlab interpret the columns as several lines, but I have not gotten it to work properly.
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponse acceptée

KSSV le 22 Juin 2018
Modifié(e) : KSSV le 22 Juin 2018
S = [0 0 0] ;
N = 10 ;
E = rand(N,3) ;
figure
hold on
S = repmat(S,N,1) ;
x = [S(:,1) E(:,1)] ;
y = [S(:,2) E(:,2)] ;
z = [S(:,3) E(:,3)] ;
plot3(x',y',z')
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Oscar Frick le 22 Juin 2018
That is exactly what I tried doing, but I couldn't get it to work properly. I must have messed up something in the syntax.

Connectez-vous pour commenter.

### Plus de réponses (1)

Stephen23 le 22 Juin 2018
Modifié(e) : Stephen23 le 22 Juin 2018
Simpler:
>> N = 5;
>> S = randi(9,N,3);
>> E = randi(9,N,3);
>> A = permute(cat(3,S,E),[3,1,2]);
>> plot3(A(:,:,1),A(:,:,2),A(:,:,3))
Giving:
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Dieter Karst le 13 Mai 2020
cool

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Annotations dans Help Center et File Exchange

R2018a

### Community Treasure Hunt

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

Start Hunting!

Translated by