python valueerror和typeerror_在Python3.x中调用Matlab.m文件后,如何解决“TypeError”和“ValueError”?...

在Python 3.6.6中尝试通过matlab.engine调用Matlab 2017b的VoxelSizeUnification函数时,遇到了TypeError和ValueError。TypeError是由于numpy.ndarray不被支持,而ValueError则与3D图像数组的初始化有关。尝试使用matlab.double转换数据类型,对于简单的数组没有问题,但对于3D图像数组则失败。Matlab函数需要一个矩形嵌套序列,但numpy数组不满足此条件。
摘要由CSDN通过智能技术生成

我想在Python中调用Matlab.m文件和函数,但是由于Matlab和Python之间的数据类型不同,出现了一个关于TypeError: unsupported Python data type: numpy.ndarray的错误。在

作为下面代码中的一个示例,VoxelSizeUnification是一个Matlab函数,我想在Python中调用它,它的输入来自Python数据类型:import matlab.engine

eng = matlab.engine.start_matlab()

xyzSpacing = [dcm_image.SliceThickness, dcm_image.PixelSpacing[1], dcm_image.PixelSpacing[0]]

xyzNewSpacing = [1.25, 1.25, 1.25]

eng.VoxelSizeUnification(volume_image, xyzNewSpacing, xyzSpacing) # TypeError: unsupported Python data type: numpy.ndarray

即:

^{pr2}$

另外,我使用link1搜索,但我不想保存文件然后再加载它们。同样在link2中,mlab应该使用python>=2.7,我的python是3.6.6和matlab2017b

另外,我尝试了matlab.double,并用一个示例测试了上面的代码,没有任何错误:xyzNewSpacing = matlab.double([1.25, 1.25, 1.25])

xyzSpacing = matlab.double([1.5, 1.5,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值