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

1 回表示 (過去 30 日間)
kiet tran
kiet tran 2019 年 11 月 9 日
コメント済み: kiet tran 2019 年 11 月 15 日
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 件のコメント
Walter Roberson
Walter Roberson 2019 年 11 月 9 日
I cannot tell what your rule is for constructing the edges?

サインインしてコメントする。

採用された回答

Fabio Freschi
Fabio Freschi 2019 年 11 月 9 日
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')

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGeometric Transformation and Image Registration についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by