【visum工作笔记】之三

本文是作者关于visum COM接口的工作笔记,主要对比了使用VBA和Python两种语言构建visum模型的体验。作者提到VBA语法较为自由,而Python需要依赖缩进来定义作用域。Visum为Python提供了便利的模块,如Visumpy.helpers,使得矩阵操作更高效。在处理matrix时,Python直接返回numpy.array,效率与VBA相当,且numpy库支持强大的矩阵运算功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实一直想静下心来好好的总结一下visum的COM。其实从run script 程序中就可以看出visum目前只适用两种语言的接口: 一个是VBA ,另一个就是Python

读取和编写这两种语言的script语句来构建模型,是在我学visum还不到2个月的时候。如果说VBA还和VB有点相似的话,那么python是之前一直没有接触过的。凭着我那编程的三脚猫功夫,花了一周的时间读完简明Python教程,觉得这本书的确很浅显易懂,值得初学者看看。

首先说下对于matrix的处理:

假设对一个OD的所有参数进行乘以一个factor

VBA的script如下:

AllZones = visum.Net.Zones.GetAll
lastzone = UBound(AllZones)
For i = 0 To 13
    Set mat = visum.Net.ODMatrices.ItemByKey(matrixNos(i))
    Set newmat = visum.Net.ODMatrices.ItemByKey(newmatrixNos(i))
    matsum = mat.GetODSum() 
    factor = factorNos(i)/matsum
    matarray = mat.GetValues()
    newmatarray = newmat.GetValues()
    For j = 0 To lastzone
      For k = 0 To lastzone
        a = matarray(j, k)                                           
        newmatarray(j, k) = a* f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值