主要内容

在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(intmax).bit_length
ans =INT6431

用数字调用Python方法觉得参数

PythonMath.fsum函数将浮点值列入觉得输入参数。您可以将MATLAB矢量传递到此功能。例如,打开MATLAB患者数据文件并读取数字阵列高度

加载患者班级(高度)
ans ='double'
尺寸(高度)
ans =1×2100 1

当您将此参数传递给Python时,MATLAB会自动将数字值转换为Python数字值,并在向量值上进行python迭代。

py.math.fsum(高度)
ANS = 6707

使用Python大批类型MATLAB

假设您的python函数返回以下pythonarray.Array双型。

p = py.Array.Array('D',1:5)
p =带有属性的Python数组:itextize:8 typecode:[1×1 py.str]阵列('d',[1.0,2.0,2.0,3.0,4.0,5.0])

通过p到MATLAB功能, 兑换p到double类型的MATLAB阵列。

sum(double(p))
ANS = 15

使用Python Integer大批类型MATLAB

假设您有这个python数组。打电话给Python撤销在数组上功能,然后将结果转换为MATLAB数组。

arr = py.Array.Array('一世',[INT32(5),INT32(1),INT32(-5)])
ARR =带有属性的Python数组:iTESTIZE:4 TYTECEDE:[1×1 py.str] array('i',[5,1,-5])
arr.reverse a = int32(arr)
a =1×3 INT32行矢量-5 1 5

默认数字类型

默认情况下,MATLAB中的一个数字是双倍的类型。默认情况下,python中的一个数字(没有分数)是整数类型。将数字传递给Python函数时,这种差异可能会引起混淆。

例如,当您将这些MATLAB编号传递给Python时约会时间功能,python将它们读为漂浮类型和显示错误:

d = py.dateTime.date(2014,12,31)

Python错误:TypeError:预期的整数参数,获得了浮动

要纠正错误,请明确将每个数字转换为整数类型:

d = py.dateTime.date(int32(2014),int32(12),int32(31))
d = python与属性日期:天:31个月:12年:2014 2014-12-31

为什么显示一个数字时我会看到属性?

MATLAB将所有Python类型显示为对象,其中包括对象属性的列表。对于数字类型,MATLAB在最后一行中显示预期输出值。

py.int(5)
ans = python int with属性:分母:1图像:0分子:5真实:5 5 5