为了账号安全,请及时绑定邮箱和手机立即绑定

在 python3 中将 matlab.double 转换为整数或浮点数

在 python3 中将 matlab.double 转换为整数或浮点数

慕雪6442864 2023-03-16 08:50:54
我有一个由 Matlab 生成的包,可以在 python 中使用。输出是这样的:print(IdOut, 'len : ', len(IdOut))IdOut当我询问答案的类型时: <class 'mlarray.double'>.例如其中之一的类型IdOut[0]是:<class 'mlarray.double'>>>> type(IdOut)# <class 'mlarray.double'>>>> type(IdOut[0])# <class 'mlarray.double'>>>> idout[0]# matlab.double([261.0])我的问题是我希望这些数字是整数或浮点数。当我尝试时出现这些错误:>>> float(IdOut[0])# Traceback (most recent call last):  File "<pyshell#8>", line 1, in <module>    float(IdOut[0])TypeError: float() argument must be a string or a number, not 'double'>>> int(matlab.double([39400.0]))# Traceback (most recent call last):  File "<pyshell#4>", line 1, in <module>    int(matlab.double([39400.0]))TypeError: int() argument must be a string, a bytes-like object or a number, not 'double'有人能告诉我如何将 的类型转换和更改mlarray.double为浮点数或整数吗?任何帮助将不胜感激。
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

你可以使用numpy.array:


from numpy import array

a = array(IdOut)

print(a[0])

print(int(a[0]))

输出:


array([261.])

261


查看完整回答
反对 回复 2023-03-16
?
当年话下

TA贡献1890条经验 获得超9个赞

我不知道这是否有帮助。但我可以说,如果你将你的转换mlarray.double为库中的数组numpy,那么你可以按照你想要的方式使用它。


import numpy as np

IdOut = np.array(IdOut)

现在你可以用整数列出它:


IdOut_list = [IdOut[i] for i in range(0, len(IdOut))]


查看完整回答
反对 回复 2023-03-16
  • 2 回答
  • 0 关注
  • 340 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号