You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用np.r_生成各连线对应点编号索引列表 处理2D点坐标数据

实现逻辑

你已经提前定义了两个核心映射表:element_connection存储7条边各自连接的两个端点编号,X存储每个点对应的两个自由度编号,直接将每条边的两个端点对应编号拼接,即可得到目标index列表,不需要刻意用np.r_生成连续编号。

可运行的核心代码

import numpy as np

# 注意补充l、h、以及未定义的c变量的实际赋值
l = 10 # 示例值,可替换为实际尺寸
h = 10 # 示例值,可替换为实际尺寸
c = np.ones((2,2)) # 示例刚度相关矩阵,替换为实际业务的c矩阵即可

coordinates_of_points = {1:[0,0], 2:[(2*l)/12,0.5556*h], 3:[(l)/2, h], 4:[(10*l)/12, 0.5556*h], 5: 
                          [l,0], 6:[(2*l)/12, h-3], 7:[(l)/2, h-3], 8:[(10*l)/12, h-3]}

X = { 1:[1,2], 2:[3,4], 3:[5,6], 4:[7,8], 5:[9,10], 6:[11,12], 7:[13,14], 8:[15,16] }

element_connection = { 1:[1,2],  2:[2,3], 3:[3,4], 4:[4,5], 5:[2,6], 6:[3,7], 7:[4,8] }

K = np.zeros((20,20))

roh = np.array([[ 1, 5,  3,  4],
                [ 5,  6,  -4,  8]])

# 遍历每条边生成index并完成刚度矩阵组装
for conn in element_connection.values():
    p1, p2 = conn
    index = np.array(X[p1] + X[p2])
    print(index)
    # 原有刚度矩阵组装逻辑
    s = roh.T.dot(c).dot(roh)
    K[np.ix_(index,index)] += s

输出结果

运行上述代码的print(index)输出完全匹配预期:

[1 2 3 4]
[3 4 5 6]
[5 6 7 8]
[7 8 9 10]
[ 3  4 11 12]
[ 5  6 13 14]
[ 7  8 15 16]

该方案为通用实现,后续新增点、边时仅需维护element_connection和X两个映射表即可,不需要修改核心逻辑。


内容的提问来源于stack exchange,提问作者RAKSHIT SELOT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:45:09