Error in converting ndarray to double

74 ビュー (過去 30 日間)
Sajid Sarwar
Sajid Sarwar 2020 年 10 月 22 日
コメント済み: Lucademicus 2023 年 12 月 1 日
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 件のコメント
Sajid Sarwar
Sajid Sarwar 2020 年 10 月 22 日
MATLAB 2017a
Suyash Sule
Suyash Sule 2020 年 11 月 3 日
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.

サインインしてコメントする。

回答 (2 件)

Michael Loibl
Michael Loibl 2021 年 12 月 7 日
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 件のコメント
Lucademicus
Lucademicus 2023 年 11 月 17 日
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 2023 年 12 月 1 日
A restart of MATLAB made it work again. Not sure what happened, but perhaps this helps anybody

サインインしてコメントする。


Chris H
Chris H 2023 年 11 月 28 日
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)

カテゴリ

Help Center および File ExchangeIntroduction to Installation and Licensing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by