python call MATLAB function Use Named Arguments

5 visualizaciones (últimos 30 días)
Michele
Michele el 19 de En. de 2024
Comentada: Mike Croucher el 19 de En. de 2024
Hi,
How can I call a matlab function with python specifying the name of the arguments?
Es:
in MATLAB:
yw = wdenoise(signal,1,Wavelet='bior3.9',DenoisingMethod='UniversalThreshold', ThresholdRule='Soft', NoiseEstimate='LevelIndependent');
in Python
import matlab.engine
eng = matlab.engine.start_matlab()
signal = matlab.double(signal_noise.values)
yw = eng.wdenoise(signal, matlab.double(4) ) # work!!!
But but when I specify the name of the variable to pass I get an error
yw = eng.wdenoise(signal, matlab.double(4), {'Wavelet': 'sym2'} ) # ERROR !!!
File C:\Program Files\MATLAB\R2023a\toolbox\wavelet\wavelet\wdenoise.m, line 175, in wdenoise Expected at most one numeric input argument in addition to the input data.
I try different mode
yw = eng.wdenoise(signal, matlab.double(4), Wavelet='sym2' ) # ERROR !!!
yw = eng.wdenoise(signal, matlab.double(4), ['Wavelet','sym2'] ) # ERROR !!!
How can I pass specific named arguments?

Respuesta aceptada

Mike Croucher
Mike Croucher el 19 de En. de 2024
Try this
yw = eng.wdenoise(signal, matlab.double(4), "Wavelet","sym2" )
  2 comentarios
Michele
Michele el 19 de En. de 2024
Movida: Voss el 19 de En. de 2024
Thank you!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Call MATLAB from Python en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by