我试图通过制作一个测试用例来增加测试范围,该用例将在以下程序中检查s矩阵的if条件。我不知道我将什么矩阵传递给函数np.linalg.svd以获取测试用例的特定s矩阵。
为了找到该矩阵,我创建了以下程序,并期望它运行直到获得该矩阵。但是由于某种原因,它在执行几次后便会生成错误,并且停止了最大递归深度。我不知道为什么它会这样。
我正在通过python program.py运行它
请帮忙

import numpy as np
import random
import pivot as p


def randomGenerator():
    condition = True
    while(condition):
        matrices = np.random.rand(4, 4)
        print(matrices)
        u, s, v = np.linalg.svd(matrices, full_matrices=False)
        Rank = 0
        for i in range(len(s)):
            if s[i] < 0.01:
                s[i] = 0
                print(s)
                condition = False
            else:
                randomGenerator()
# Main #
randomGenerator()

最佳答案

答案是这样做没有递归。感谢G. Anderson。

import numpy as np
import random
import pivot as p

condition = True
while(condition):
    matrices = np.random.rand(4, 4)
    print(matrices)
    u, s, v = np.linalg.svd(matrices, full_matrices=False)
    Rank = 0
    for i in range(len(s)):
        if s[i] < 0.01:
            s[i] = 0
            print(s)
            condition = False

09-28 04:41