Ответ делает это без рекурсии. Спасибо Г. Андерсону.
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
Мой друг, ты в глубоком восторге. Модификация большого, плохо документированного унаследованного кода - один из тех проектов, который заставляет опытных программистов всерьез задуматься о радостях продажи страховки или какой-то другой альтернативной карьере. Однако это не невозможно, и вот несколько советов, которые, я надеюсь, помогут.
Ваша первая задача - понять код как можно больше. Вы по крайней мере на правильном пути там. Получить хорошее представление о структуре классов абсолютно важно, и диаграмма, вероятно, является лучшим способом. Другая вещь, которую я хотел бы предложить, - это когда вы узнаете, что делает класс, добавьте недостающую документацию самостоятельно. Таким образом, когда вы вернетесь к нему, вы не забудете, что узнали.
Не забудьте отладчик. Если вы хотите выяснить, что на самом деле происходит, пошагово просматривая соответствующий код или просто выяснить, как действительно выглядит стек вызовов в определенный момент, это может быть очень полезно.