How can transfer python result to Matlab matrix

75 views (last 30 days)
KOU DU
KOU DU on 3 Apr 2019
Commented: KOU DU on 19 Feb 2020
I use 'system' to import a python coding and got the result as show below:
G=
Python ndarray with properties:
T: [1×1 py.numpy.ndarray]
base: [1×1 py.NoneType]
ctypes: [1×1 py.numpy.core._internal._ctypes]
data: [1×3 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×2 py.tuple]
size: [1×1 py.int]
strides: [1×2 py.tuple]
[[1.00000001 1.00000001 3.00000001]
[1.00000001 1.00000001 3.00000001]
[1.00000001 1.00000001 3.00000001]]
How Can I transfer the data of G in format of Matlab matrix ?

Answers (2)

Agnish Dutta
Agnish Dutta on 10 Apr 2019
You need to save this array in a format that MATLAB understands. You could use scipy.io to do this.
As an example:
import numpy as np
import scipy.io
x = np.linspace(0, 2 * np.pi, 100)
y = np.cos(x)
scipy.io.savemat('test.mat', dict(x=x, y=y))
You can then load this in matlab with "load". Refer to the following for more information:
  1 Comment
KOU DU
KOU DU on 10 Apr 2019
Thank you Agnish, I have found a way to transfer directly in matlab.

Sign in to comment.


Aim Newb
Aim Newb on 18 Feb 2020
May you please inform about the way you transfer the results directly to matlab?
I'm having the same problem.
  1 Comment
KOU DU
KOU DU on 19 Feb 2020
For example, In Matlab
A_Array=py.numpy.array(B) % B is the data which you got from python, A is in array format
A_matrix=nparray2mat(A_Array); %change python array to matlab matrix
you can find nparray2mat in this answer:
fr.mathworks.com/matlabcentral/answers/157347-convert-python-numpy-array-to-double

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!