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

如何使用Python创建单元(线)点连接矩阵?Matlab代码转Python实现

正确Python实现代码

你原有代码运行异常的核心原因是:Python原生列表的+是拼接操作、*是重复列表操作,不支持Matlab风格的元素级广播运算,需要借助numpy的数组广播能力实现和原Matlab代码完全一致的效果。

对齐原Matlab逻辑的实现代码

import numpy as np

nelments = 3
npoint = 5
# 利用numpy广播机制,和Matlab隐式广播逻辑完全匹配
connect = np.arange(1, npoint+1).reshape(-1, 1) + (npoint - 1) * np.arange(nelments)
# 若需要转为Python原生列表,可添加下方代码
# connect = connect.tolist()

针对你给出的参数,上述代码输出的矩阵结构为每列对应一个单元的节点编号,和原Matlab输出结果完全一致:

array([[1, 5,  9],
       [2, 6, 10],
       [3, 7, 11],
       [4, 8, 12],
       [5, 9, 13]])

如果你需要每行对应一个单元的节点编号,调整维度顺序即可:

connect = np.arange(1, npoint+1) + (npoint - 1) * np.arange(nelments).reshape(-1, 1)

输出结果为:

array([[ 1,  2,  3,  4,  5],
       [ 5,  6,  7,  8,  9],
       [ 9, 10, 11, 12, 13]])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:06:00