我在MATLAB算法中有一个函数,它使用sum函数。正如doc所述,该函数的输入必须是以下类型之一:
目前,我尝试直接从引擎中使用MATLAB函数来处理Python。但我不确定转换是否有效。
这是我的问题的MWE:
- 向量
- 矩阵
- 多维数组
目前,我尝试直接从引擎中使用MATLAB函数来处理Python。但我不确定转换是否有效。
这是我的问题的MWE:
import matlab
import matlab.engine
myEngine = matlab.engine.start_matlab()
pythonData = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
pythonData = myEngine.cellstr(pythonData)
print('after cellstr()', pythonData)
pythonData = myEngine.cell2mat(pythonData)
print('after cell2mat()', pythonData)
matlabSum = myEngine.sum(pythonData)
print('sum:', matlabSum)
这是我在终端上的输出。
你会注意到cellstr并没有做太多事情,这很奇怪。有人知道如何正确进行这些转换吗?另外,总和不是477。应该是45。我相信这是因为它将其转换为ASCII码,这将导致[49,50,51,...]得出477。
由于Matlab自动将列表转换为单元格,所以我尝试将每个值更改为整数,然后直接在列表上使用engine.cell2mat,但我收到了以下错误:
TypeError: array of MATLAB int64 type cannot be returned on this platform
目前,我仍在尝试将 Python 2.7 转换为上述 MATLAB 数据格式之一。