1

我创建了一个 python 函数来对矩阵求幂,并使用 DataNitro 将其作为 Excel 中的用户定义函数导入。但是,当我使用这个公式时,我得到的结果是一个单元格中的 python 列表。

是否可以使用与 MMULT 或 MINVERSE 类似的 DataNitro 为 excel 创建数组公式?

下面是我的python代码和excel表的快照:

函数.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表

4

1 回答 1

0

无法从一个 DataNitro 函数返回多个单元格。您可以得到相同的结果,如下所示:

def mat_expo_entry(x, n, i, j):
    return mat_expo(x, n)[i][j]

=mat_expo_entry($B$2:$D$4,3,ROW()-7,COLUMN()-2)在单元格中的示例电子表格中使用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 脚本将结果直接打印到工作表上。

于 2016-05-29T19:00:06.753 回答