Error in converting ndarray to double

61 visualizzazioni (ultimi 30 giorni)
Sajid Sarwar
Sajid Sarwar il 22 Ott 2020
Commentato: Lucademicus il 1 Dic 2023
When I write in MATLAB,
y = py.numpy.array(1:10);
I receive ndarray but I am unable to convert it into double for further use like following line
x=2*double(y)
Error using double
Conversion to double from py.numpy.ndarray is not possible.
  3 Commenti
Suyash Sule
Suyash Sule il 3 Nov 2020
I am experiencing the same error on Matlab 2020a as well. A few online answers suggest that double() should work but it doesnt. double(np.array.array()) also does not work. Please help.

Accedi per commentare.

Risposte (2)

Michael Loibl
Michael Loibl il 7 Dic 2021
I actually have the same problem. Now, I found a nasty (but in my case helpful) solution. I am using the fact that I am able to convert Python lists to Matlab. I did the following type conversions:
y_py=py.numpy.array(1:10);
y_py_list=y.tolist();
y_mat_cell=cell(y_py_list);
y_mat=cell2mat(y_mat_cell);
Nevertheless, it is also unclear to me, why the conversion seems to work that easily for other people. Therefore, I would be happy to see further more sofisticated and more general answers.
  3 Commenti
Lucademicus
Lucademicus il 17 Nov 2023
Suddenly my code stopped working, while it worked yesterday. I get the same error
> Error using double
> Conversion to double from py.numpy.ndarray is not possible.
I'm in R2023b so this mystery is still there.
Lucademicus
Lucademicus il 1 Dic 2023
A restart of MATLAB made it work again. Not sure what happened, but perhaps this helps anybody

Accedi per commentare.


Chris H
Chris H il 28 Nov 2023
I experienced exactly this issue when running MATLAB R2023a on Linux (RHEL 8.8), when using a python3.9 install via miniconda.
I do not know why using the python 3.9 install from miniconda created this issue, but when I deactivated the conda environment (which I had set to my default environment via my bashrc) and installed python39 and python39-numpy via yum/dnf, suddenly everything started working. You can keep your default conda environment outside of MATLAB and then within MATLAB select the python3.9 installed at the OS level via the command:
pyenv(Version='/usr/bin/python3.9')
(so long as python is installed at that location)

Categorie

Scopri di più su Startup and Shutdown in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by