Mit der Python-API von MATLAB habe ich meinen Code debuggt und die Ergebnisse verglichen:
Code: Select all
import matlab
eng = matlab.engine.start_matlab()
from scipy import sparse
import numpy as np
if (eng is None):
problemflag = False
tmp = sparse.linalg.minres(Reg,y,M=preconditioner,rtol=1e-18,maxiter = 1e4)
problemflag = problemflag or (tmp[1]!=0)
x = tmp[0][:,np.newaxis]
else:
Reg_mat = matlab.double(Reg.toarray().tolist())
y_mat = matlab.double(y.tolist())
eng.workspace["Reg_mat"] = Reg_mat
eng.workspace["y_mat"] = y_mat
eng.eval("x = lsqminnorm(sparse(Reg_mat),y_mat);",nargout=0)
x = np.array(eng.workspace["x"])
Code: Select all
problemflagIch verwende Python 3.12.4, Scipy 1.16.3 und MATLAB Version 25.2.0.3055257 (R2025b) Update 2
Mobile version