数据传递

Python与MATLAB之间的数据传递包括两方面的内容,即Python传递数据给MATLAB和MATLAB传递数据给Python。[大谦MATLAB,dqmatlab点com]

从Python传递数据给MATLAB

将Python数据作为输入变量传递给MATLAB函数时,引擎将数据转换为对等的MATLAB数据类型。标量类型之间的映射关系如表1-2所示,数组类型之间的映射关系如表1-3所示。

表1-2 Python类型向MATLAB标量类型映射

Python输入变量类型 生成的MATLAB数据类型
float double
complex complex double
int int64
long(Python 2.7) int64
float(nan) NaN
float(inf) Inf
bool logical
str char
unicode(Python 2.7) char
dict dict

表1-3 Python容器向MATLAB数组类型映射

Python输入变量类型 – 容器 生成的MATLAB数据类型
数值数组对象 数值数组
byte数组 uint8数组
bytes(Python 3.x) bytes(Python 2.7) uint8数组 char数组
列表 元胞数组
set 元胞数组
元组 元胞数组

MATLAB传递数据给Python

将MATLAB数据作为输入变量传递给Python时,引擎将数据转换为对等的Python数据类型。标量类型之间的映射关系如表1-4所示,数组类型之间的映射关系如表1-5所示。

表1-4 MATLAB标量类型向Python类型映射

MATLAB输出变量类型 生成的Python数据类型
double float
single float
complex(任何数值类型) complex
int8 int
uint8 int
int16 int
uint16 int
int32 int
uint32 int(Python 3.x), long(Python 2.7)
int64 int(Python 3.x), long(Python 2.7)
uint64 int(Python 3.x), long(Python 2.7)
NaN float(nan)
Inf float(inf)
logical bool
返回给Python 3.x的char类型 str
返回给Python 2.7的char类型 str(当MATLAB char值小于或等于127) unicode(当MATLAB char值大于127)
结构 dict
MATLAB句柄对象 matlab.object

表1-5 MATLAB数组类型向Python类型映射

MATLAB输出变量类型 生成的Python数据类型
数值数组 MATLAB数值数组对象
字符数组(1*N或N*1)(Python 3.x) str
字符数组(1*N或N*1) (Python 2.7) str(当MATLAB char值小于或等于127) unicode(当MATLAB char值大于127)
元胞数组的行或列 列表