実現したいこと
配列Aの特定の値(節点番号)を別の配列B(節点番号と座標の対応表)から探し出し、配列Bの該当行の値(座標)を読み取りたいです。
前提
Python3, Numpyを使って汎用数値解析プログラムのインプット作成補助ツールを作っています。
配列Aの各行はグループを表し、1列目にグループ番号、2~5列目にそのグループに属する4つの節点番号が並んでいます。
配列Bの各行は節点を表し、1列目に節点番号、2~4列目に節点のx,y,z座標が並んでいます。
配列Aの2~5列目の節点番号は、配列Bの1列目のいずれかに必ず該当します。
いま、配列Aの各グループに対し、グループを構成する4つの節点の座標を配列Bから読取り、各グループの四角形の面積を求めようとしています。
ご教示いただきたいこと
配列Aのグループiの4点i1(i1x,i1y,i1z)~i4(i4x,i4y,i4z)の座標を配列Bから読取る方法をご教示いただきたく存じます。
座標を読取った後に面積計算するために下記の配列Cのような形にしたいと考えており、(i1x,i1y,i1z)~(i4x,i4y,i4z)の具体的な表現方法を教えていただきたいです。
該当のソースコード
配列A、配列B、配列Nodes(座標を整理したイメージの)の例を以下に記載します。
・配列A…(N,5)
・配列B…(M,4)
・配列C…(N,4,3)
Python3
1 2A = np.array([[ 1, 11, 12, 13, 14], #グループ1の番号1と4節点(11,12,13,14) 3 (中略) 4 [ i, i1, i2, i3, i4], #グループiの番号iと4節点(i1,i2,i3,i4) 5 (中略) 6 [ N, N1, N2, N3, N4]]) #グループNの番号Nと4節点(N1,N2,N3,N4) 7 8 9B = np.array([[ 1, 1x, 1y, 1z], #節点1の番号1とxyz座標(1x,1y,1z) 10 (中略) 11 [ i, ix, iy, iz], #節点iの番号iとxyz座標(ix,iy,iz) 12 (中略) 13 [ M, Mx, My, Mz]]) #節点Mの番号Mとxyz座標(Nx,Ny,Nz) 14 15 16 17C = np.array([[[11x, 11y, 11z], #グループ1の4節点(11,12,13,14)の座標 18 [12x, 12y, 12z], 19 [13x, 13y, 13z], 20 [14x, 14y, 14z]], 21 22 (中略) 23 24 [[ i1x, i1y, i1z], #グループiの4節点(i1,i2,i3,i4)の座標 25 [ i2x, i2y, i2z], 26 [ i3x, i3y, i3z], 27 [ i4x, i4y, i4z]] 28 29 (中略) 30 31 [[ N1x, N1y, N1z], #グループNの4節点(N1,N2,N3,N4)の座標 32 [ N2x, N2y, N1z], 33 [ N3x, N3y, N1z], 34 [ N4x, N4y, N1z]]]) 35
試したこと
for文を使って配列Aの1行目の4節点番号を読込むところまではできますが、その節点番号の座標を配列Bから取り出す方法がわかりません。
補足情報(FW/ツールのバージョンなど)
Python3, Numpy

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/03/11 14:24