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

1 view (last 30 days)
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
Walter Roberson on 9 Nov 2019
I cannot tell what your rule is for constructing the edges?

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')
kiet tran on 15 Nov 2019
Thank you Fabio!

### Categories

Find more on Matrices and Arrays in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by