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

VBA二维Double数组声明代码转Python实现求助

VBA转Python:3x3双精度数组实现

你的代码问题在于创建的是3行2列的数组,和VBA中Dim R_SH(1 To 3, 1 To 3) As Double定义的3x3双精度数组不符。

正确写法1:纯Python列表推导式

要创建3行3列、初始值为0.0(对应VBA的Double类型)的数组,用下面的代码:

# 3行3列,每个元素为双精度浮点型的0.0
R_SH = [[0.0 for _ in range(3)] for _ in range(3)]

解释:外层range(3)控制行数,内层range(3)控制列数,0.0明确指定为浮点类型,和VBA的Double对应。

正确写法2:用NumPy(更贴近VBA数组体验)

如果你的程序涉及大量数值计算,推荐用NumPy,它的多维数组和VBA数组的行为更接近:

import numpy as np
# 创建3x3的全0双精度数组
R_SH = np.zeros((3, 3), dtype=np.float64)

解释:np.zeros直接生成指定形状的全0数组,dtype=np.float64就是VBA里的Double类型,后续索引、运算都更高效。

你的代码错误点

你之前写的w, h = 2, 3,range(w)只会生成2个元素,导致每行只有2个值,不符合VBA中3列的要求——哪怕把w改成3能修正结构,也建议显式用0.0来对应Double类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:54:53