在MATLAB中使用Python数值变量
这个例子展示了如何在MATLAB®中使用Python®数字类型。
在MATLAB中使用Python数值类型
在调用接受数字输入参数的Python函数时,MATLAB将双精度值转换为最能向Python语言表示数据的类型。例如,在Python中调用三角函数数学
模块,传递一个MATLAB的双值。
Pynum = py.math.radians(90)
Pynum = 1.5708
对于返回Python的函数浮动
类型,MATLAB自动转换此类型为double。
类(pynum)
Ans = 'double'
对于返回整数类型的Python函数,MATLAB自动将此类型转换为int64
.例如,bit_length
函数返回以二进制形式表示整数所需的位数int
价值。
py.int .bit_length (intmax)
ans =int6431
使用Numeric调用Python方法可迭代的
参数
Pythonmath.fsum
函数中浮点值的和可迭代的
输入参数。你可以把一个MATLAB矢量传递给这个函数。例如,打开MATLABpatients.mat
数据文件并读取数字数组高度
.
负载patients.mat类(高度)
Ans = 'double'
大小(高度)
ans =1×2100年1
当您将此参数传递给Python时,MATLAB将自动将数值转换为Python数值,并且Python将遍历向量值。
py.math.fsum(高度)
Ans = 6707
使用Python数组
MATLAB中的类型
假设您有一个Python函数,该函数返回以下Pythonarray.array
类型为double。
P = py.array.array(' d '1:5)
P =带有属性的Python数组:itemsize: 8 typecode: [1×1 py. py.]Str]数组('d', [1.0, 2.0, 3.0, 4.0, 5.0])
通过P
到MATLAB函数总和
,转换P
到一个类型为double的MATLAB数组。
总和(双(P))
Ans = 15
使用Python整数数组
MATLAB中的类型
假设你有这个Python数组。调用Python反向
函数,然后将结果转换为MATLAB数组。
Arr = py.array.array(“我”, (int32 (5), int32 (1) int32 (5)))
arr =带有属性的Python数组:itemsize: 4 typecode: [1×1 py.]数组('i', [5,1, -5])
加勒比海盗。逆A = int32(arr)
一个=1×3 int32行向量-5 1 5
默认数字类型
默认情况下,MATLAB中的数字是a双
类型。默认情况下,Python中的数字(不含小数部分)是整数类型。在将数字传递给Python函数时,这种差异可能会导致混淆。
例如,当你将这些MATLAB数字传递给Python时datetime
函数,Python将它们读取为浮动
键入并显示错误:
D = py.datetime.date(2014,12,31)
Python错误:TypeError: integer参数期望,得到浮点数
为了纠正错误,显式地将每个数字转换为整数类型:
D = py.date .date(int32(2014),int32(12),int32(31))
d = Python date with properties: day: 31 month: 12 year: 2014 2014-12-31
为什么我在显示数字时看到属性?
MATLAB将所有Python类型显示为对象,其中包括对象属性列表。对于数字类型,MATLAB在最后一行显示预期输出值。
py.int (5)
ans = Python int属性:分母:1 imag: 0分子:5 real: 5 5 5