Filter löschen
Filter löschen

Calling python function that calls another file from Matlab

5 Ansichten (letzte 30 Tage)
Atul
Atul am 15 Dez. 2022
Kommentiert: Atul am 15 Dez. 2022
Hello,
My python file all_functions.py has a function of
import vib_calc as vib
def calc_cac(a):
formula_involving vib.anotherfunc(a[1])
return press
This I can call from matlab as py.all_functions.calc_cac(input). The problem is, calc_cac(a) also uses a command "import vib_calc as vib" which is basically using another vib_calc.py file as import as it has another loads of functions inside it, that are required for calc_cac(input).
Hence my former call from matlab of
py.all_functions.calc_cac(input)
throws an error of
Error using vib_calc>supportplates
Python Error: TypeError: 'float' object cannot be interpreted as an integer.
I am guessing this is because I have not informed matlab about the whereabouts of vib_calc file, but I am not sure how can I do this?

Akzeptierte Antwort

Daniele Sportillo
Daniele Sportillo am 15 Dez. 2022
Bearbeitet: Daniele Sportillo am 15 Dez. 2022
Hi,
the problem may be related to the type of the "input" variable, which is by default float.
Try calling your python function with the argument cast to integer:
py.all_functions.calc_cac(int16(input))
  3 Kommentare
Daniele Sportillo
Daniele Sportillo am 15 Dez. 2022
Right, this should work:
inp_new = py.list(int16(input(1:7))); % Create a list with the first 7 elements cast to int
inp_new.extend(input(8:10)); % Append the last 3 elements as double
py.all_functions.calc_cac(inp_new)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Call Python from MATLAB finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by