我试图在MATLAB中计算Python数值向量的平均值。为了澄清,我使用的是Python,但是我试图通过在Python环境中运行MATLAB来依赖一些特定于MATLAB的函数。我用matlab.engine
来做这个:
##### (From my Python script) #####
# Simple MATLAB experiment
import numpy as np
!pip install matlab
import matlab.engine
eng = matlab.engine.start_matlab()
data = np.arange(5)
data_list = data.tolist()
eng.workspace['foo'] = data_list
eng.eval('mean(foo)')
在最后一行之后,我不断遇到以下错误:
“文件/Applications/MATLAB R2018b.app/toolbox/MATLAB/datafun/mean.m,第127行,表示无效数据类型。第一个参数必须是数字或逻辑。“
据我所知,这是由于当data_list
被移植到引擎工作区时(如foo
),MATLAB不知何故无法识别存储在data_list
中的对象类型。我尝试过(1)在创建对象数据时指定dtype
,以及(2)删除data.tolist()
并直接移植data
,但这两种方法都不能解决问题。(方法2产生另一个错误,“TypeError:不支持的Python数据类型:numpy.ndarray公司“)
我使用的是matlabr2018b和python3.6。你知道吗
有人能帮忙排除故障吗?提前谢谢!你知道吗
调用MATLAB引擎函数时,列表将转换为单元格。你知道吗
如文件所述here。你知道吗
您可以在MATLAB中确认数据类型为cell
现在您知道了数据类型,只需转换数据:
相关问题 更多 >
编程相关推荐