MATLAB Answers

How can I pick certain element from each row of an array ?

1 view (last 30 days)
kiet tran
kiet tran on 9 Nov 2019
Commented: kiet tran on 15 Nov 2019
I already have an array CF [ 1 2 3; 2 3 4]
How can I create an for loop that give me an array CE [ 1 2; 2 3; 3 1; 3 4; 4 2] ?
Each row of CF represent a face of an triangle. Each row of CE represents the edges of the face.
Thank you

  1 Comment

Walter Roberson
Walter Roberson on 9 Nov 2019
I cannot tell what your rule is for constructing the edges?

Sign in to comment.

Accepted Answer

Fabio Freschi
Fabio Freschi on 9 Nov 2019
I see that the edges shared by two triangles are not duplicated. To check for this case I sorted the nodes and the edges. Let me know if it is ok:
CF = [ 1 2 3; 2 3 4];
% sorted nodes (always increasing node)
CFs = sort(CF,2);
% remove repetitions and get edges
CE = unique(reshape(CF(:,[1 2 2 3 1 3]).',2,3*size(CF,1)).','rows')

More Answers (0)

Sign in to answer this question.