matlab使用python返回数组_转换matlab.double数组到python数组

我正在使用matlabpython引擎访问python中的matlab项目中的数据。这很好地工作,但是在python中有效地使用matlab数组确实有一个问题。例如,我想要一个来自matlab的数组,我使用(eng代表matlab引擎):x = eng.eval(arg)

我得到的是matlab.double数组如下所示:

^{pr2}$

看起来还不错。让我们试着抓住一个条目:>>> x[2][1]

5.0

耶!一整排怎么样?在>>> x[0]

matlab.double([1.0,2.0])

。。好吧,至少是吵架了,但我没找到“matlab.double“”前缀。。专栏怎么样?在>>> x[:][0]

matlab.double([1.0,2.0])

等等,什么?我尝试选择所有行,然后从每个行中选择第一个元素,但是我只得到行。事实上:x[i] == x[:][i] == x[i][:]

所以,基本上有两个问题出现了:选一排给我带来了不想要的。”matlab.double“前缀和选择一个列(个人更重要)根本不起作用。有什么建议吗?

我现在所做的是重新读取每个值,并将其保存到一个新的python数组中:c = [[] for _ in range(len(x[0]))]

for i in range(len(x[0])):

for j in range(len(x)):

c[i].append(x[j][i])

这是可行的,但有一个问题:随着数据的增长,代码的速度会大大减慢。当然,如果每个条目实际上已经存储在x中,那么重读它们并不是一件美妙的事

感谢您阅读了这篇长文本,我只是假设我解释了一点,因为可能只有少数人使用python matlab引擎。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值