我在一个dll中有这个函数,我通过python中的clr导入了asNetArray函数,我在网络中找到了这个函数。
public static double DrawdownTable(ref System.Array resDrawdown, ref System.Array resPeak, ref System.Array resThrough, ref System.Array resRecover, System.Array dateVector, System.Array security)
resDrawdown = asNetArray(np.array([]))
resPeak = asNetArray(np.array([]))
resThrough = asNetArray(np.array([]))
resRecover = asNetArray(np.array([]))
date=date.strftime('%Y-%m-%d').to_list()
date = Array[str](date)
#table = Engine.DrawdownTable(asNetArray(date),asNetArray(security))
(result,resDrawdown,resPeak,resThrough,resRecover) = Engine.DrawdownTable(resDrawdown,resPeak,resThrough,resRecover,date,security)
不幸的是,我有这个错误。
Traceback (most recent call last):
File "<string>", line 1, in <module>
System.IndexOutOfRangeException: L'index se trouve en dehors des limites du tableau.
à System.Array.InternalGetReference(Void* elemRef, Int32 rank, Int32* pIndices)
à System.Array.SetValue(Object value, Int32 index)
à DrawdownTable(Array& resDrawdown, Array& resPeak, Array& resThrough, Array& resRecover, Array dateVector, Array security)
我不明白为什么,而且在pythonnet上搜索东西有点复杂,因为对于初学者来说没有太多的文档。我试图用Array[str]([])
定义我的ref参数,但没有成功。
1条答案
按热度按时间ugmeyewa1#
你看到的错误发生在你的
DrawdownTable
中。它得到了你创建的数组,但是你试图用错误的索引访问一个元素(可能来自其中一个)。