Convert Python list Type to MATLAB double

43 views (last 30 days)
Hello All,
I would like to convert the python list type to matlab double.
I have tried the following,
First approach
out = func.getValues() %python function gives a list of [1,2,...n]
out = cell(out(1:end-1));
out = cellfun(@double,out); %outputs type double
Second approach
out = func.getValues() %python function gives a list of [1,2,...n]
out = func.convlisttoarray(out) %python function imports numpy and converts list to array using numpy.array()
out_double = double(out); % outputs type double
Although the length of the list is 1x150, in both the approaches, Matlab is taking a lot of computation time and the system hangs for a while. This is wierd to me, as a couple of days earlier everything worked fine and it could solve the problem in milli seconds.
Could anyone of you please help me with a faster approach to convert the python list to matlab double?
I am using Matlab 2019b.
Thank you in advance.
Cheers,
Sai Krishna

Answers (1)

Sean de Wolski
Sean de Wolski on 2 Dec 2021
q = py.list({1,2,3})
q =
Python list with no properties. [1.0, 2.0, 3.0]
cq = cell(q)
cq = 1×3 cell array
{[1]} {[2]} {[3]}
[cq{:}]
ans = 1×3
1 2 3
  3 Comments
Sean de Wolski
Sean de Wolski on 18 Jul 2022
Do you have python installed and configured? I.e. what's the output of
pyenv
ans =
PythonEnvironment with properties: Version: "2.7" Executable: "/usr/bin/python" Library: "libpython2.7.so.1.0" Home: "/usr" Status: NotLoaded ExecutionMode: InProcess
It should not be empty.
Kent Schonert
Kent Schonert on 23 Apr 2024
I'm also using 2019b and cannot figure out how to convert python lists to matlab array.
q = py.list({1,2,3})
cq = cell(q) %errors out in 2019b . . .
Error using cell
Conversion to cell from py.list is not possible.
Later versions of Matlab support this, but not 2019b and below, which I (and my workgroup) am stuck using.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!