首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用递归或其他技术来解决以下问题

如何使用递归或其他技术来解决以下问题
EN

Stack Overflow用户
提问于 2020-02-18 12:52:52
回答 1查看 38关注 0票数 0

我有一些用索引填充数据的n-d矩阵。下面是一个示例代码,它将使您了解我正在尝试实现的内容。

代码语言:javascript
复制
# sf = some_function or it can also be considered as array where 
# sf(i) = sf[i]


def sample_function(matrix, matrix2, obj1, obj2):
    for i in range(len(obj1):
        for j in range(len(obj2)):
            for k in range(len(obj3):
                matrix[sf(i)][sf(j)][sf(k)] = matrix2[i][j][k] 

这是很容易做到的,如果我只有2-3个参数的函数,但如果参数是很多,我如何做到这一点?您可以假设矩阵已经包含了一些值(0)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-18 13:19:49

这不是递归的,只是使用内置的迭代工具,这可能仍然对您有用.如果我正确地理解了你的问题,那就是:)否则就纠正我

代码语言:javascript
复制
import numpy  as np
import itertools as it

def other_fun(*args):
    return sum(args)

def sample_fun(mtx, *args):
    for ids in it.product(*[range(len(obj)) for obj in args]):
        mtx[ids] = other_fun(*[obj[idx] for obj,idx in zip(args,ids)])
    return mtx

obj1 = [1,2,3]
obj2 = [4,5,6,7]
obj3 = [8,9]
objects = [obj1, obj2, obj3]

mtx = np.zeros([len(obj) for obj in objects])    
mtx = sample_fun(mtx, *objects)
print(mtx)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60281350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档