n=double(ans) Error using double Conversion to double from py.numpy.ndarray is not possible.

54 次查看(过去 30 天)
Hi,
I am calling a python function from matlab and I get back a ndarray. I try to convert it to a matlab array using double() but i get an error even if I have Matlab 2018b
n=double(ans)
where ans is my ndarray. I get this error:
"Error using double
Conversion to double from py.numpy.ndarray is not possible."
Any idea why it doesn't work or if there is an alternative way to convert ndarray in matlab array?
Thansk in advance,
Giacomo
For reference the output of details(ans) is this:
py.numpy.ndarray handle with properties:
T: [1×1 py.numpy.ndarray]
base: [1×1 py.NoneType]
ctypes: [1×1 py.numpy.core._internal._ctypes]
data: [1×1 py.memoryview]
dtype: [1×1 py.numpy.dtype]
flags: [1×1 py.numpy.flagsobj]
flat: [1×1 py.numpy.flatiter]
imag: [1×1 py.numpy.ndarray]
itemsize: [1×1 py.int]
nbytes: [1×1 py.int]
ndim: [1×1 py.int]
real: [1×1 py.numpy.ndarray]
shape: [1×1 py.tuple]
size: [1×1 py.int]
strides: [1×1 py.tuple]
Methods, Events, Superclasses

回答(1 个)

Michael Loibl
Michael Loibl 2021-12-7
I just answered a similar question here. It is a general solution, but it might help some people.

类别

Help CenterFile Exchange 中查找有关 Call Python from MATLAB 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by