在MATLAB中使用Python数值类型当您调用接受数值输入参数的Python函数时,MATLAB会将双精度值转换为最适合用Python语言表示该数据的类型。例如,要在Python数学模块中调用三角函数,请传递MATLABdouble。pynum=py.math.radians(90)pynum=1.5708对于返回Python浮点类型的函数,MATLAB会自动将该类型转换为双精度类型。class(pynum)ans='double'对于返回整数类型的Python函数,MATLAB会自动将该类型转换为int64。例如,bit_length函数返回将二进制整数表示为int值所需的位数。py.int(intmax).bit_lengththans=int6431使用数字可迭代参数调用Python方法。Pythonmath.fsum函数对可迭代输入参数中的浮点值求和。例如,打开MATLABpatients.mat数据文件并读取数值数组Height。loadpatients.matclass(Height)ans='double'size(Height)ans=1×21001当此参数传递给Python时,MATLAB会自动将数字转换为Python数字,Python会迭代向量值。py.math.fsum(Height)ans=6707在MATLAB中使用Python数组类型假设有一个Python函数返回以下Pythonarray.array,double类型。P=py.array.array('d',1:5)P=Pythonarraywithproperties:itemsize:8类型代码:[1×1py.str]array('d',[1.0,2.0,3.0,4.0,5.0])要将P传递给MATLAB函数sum,请将P转换为双精度类型的MATLAB数组。>>sum(P)Errorusingsum数据类型无效。第一个参数必须是数字或逻辑值。sum(double(P))ans=15在MATLAB中使用Python整数数组类型假设您有以下Python数组。对数组调用Python反向函数,并将结果转换为MATLAB数组。arr=py.array.array('i',[int32(5),int32(1),int32(-5)])arr=具有属性的Python数组:项目大小:4类型代码:[1×1py.str]array('i',[5,1,-5])arr.reverseA=int32(arr)A=1×3int32行向量-515默认数值类型MATLAB中默认数值类型双倍的。默认情况下,Python中的数值(不带小数部分)是整数类型。在将数值传递给Python函数时,这种差异会导致混淆。例如,当将以下MATLAB值传递给Pythondatetime函数时,Python将它们读取为浮点数并显示错误:d=py.datetime.date(2014,12,31)PythonError:TypeError:integerargumentexpected,gotfloat要更正此问题,请将每个数值显式转换为整数类型:d=py.datetime.date(int32(2014),int32(12),int32(31))d=Pythondatewithproperties:day:31month:12年份:20142014-12-31以上就是本次分享的全部内容。现在欢迎想要学习编程的朋友们关注Python技术大本营获取更多技能和教程。
