我有一個由 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

當年話下
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))]
添加回答
舉報
0/150
提交
取消