我创建了一个python函数来对矩阵进行指数化,并使用DataNitro将其作为用户定义的函数导入到Excel中。然而,当我使用这个公式时,我会在一个单元格中得到一个python列表的结果。
是否可以使用类似于MMULT或MINVERSE行的DataNitro为excel创建数组公式?
下面是我的python代码和excel工作表的快照:
functions.py
import numpy as np
def mat_expo(x,n):
if(n==2):
return mat_mult(x,x)
else:
return mat_mult(x,mat_expo(x,n-1))
def mat_mult(x,y):
return np.dot(x,y)Excel表格:
我的excel表
发布于 2016-05-29 19:00:06
无法从一个DataNitro函数返回多个单元格。您可以得到如下相同的结果:
def mat_expo_entry(x, n, i, j):
return mat_expo(x, n)[i][j]在单元格B7:D9中的示例电子表格中使用B7:D9以正确打印输出。
如果速度慢,可以使用Python内置的lru缓存存储答案:
from functools32 import lru_cache # use 'functools' in Python3
@lru_cache
def mat_expo(x,n):
if(n==2):
return mat_mult(x,x)
else:
return mat_mult(x,mat_expo(x,n-1))或者,您可以使用DataNitro脚本直接将结果打印到工作表。
https://stackoverflow.com/questions/37505810
复制相似问题