1、ValueError: initializer must be a rectangular nested sequence
解决:
(1)
#在调用matlab函数进行传参的时候注意数据类型
matlab.double(a)
#可以查看数据类型
print(type(X1))
#numpy.array不可,需要转换为list 数据类型
matlab.double(a.tolist())
(2)
matlab.double(0.0) #当只传一个数字时也会报错,需要传输list 类型
#修改为:
matlab.double([0.0])
2、matlab 代码数组的下标从1到n, 而python 的数组下标为0到n-1,需要进行转换。
如果是从matlab 直接读取数组,需要转换,则可以使用以下语句:
num=list(map(int,eng.workspace['Num']