matlab编程排序,python – matlab如何进行排序?

sort()如何在matlab中运行?

纯matlab中的代码:

q是一个数组:

q = -0.2461 2.9531 -15.8867 49.8750 -99.1172 125.8438 -99.1172

49.8750 -15.8867 2.9531 -0.2461

在q = sort(roots(q))之后,我得到了:

q = 0.3525

0.3371 – 0.1564i

0.3371 0.1564i

0.2694 – 0.3547i

0.2694 0.3547i

1.3579 – 1.7880i

1.3579 1.7880i

2.4410 – 1.1324i

2.4410 1.1324i

2.8365

好吧,似乎工作正常!然后在python中,我使用(q与上面相同,它是一个np.array):

import numpy as np

q = np.sort(np.roots(q))

我得到了:

[ 0.26937874-0.35469815j 0.26937874+0.35469815j 0.33711562-0.15638427j

0.33711562+0.15638427j 0.35254298+0.j 1.35792218-1.78801226j

1.35792218+1.78801226j 2.44104520-1.13237431j 2.44104520+1.13237431j

2.83653354+0.j ]

嗯……这两个结果看起来不同,因为它们排序不同,所以原因是什么?我做错了什么?先感谢您!

我的答案:

def sortComplex(complexList):

complexList.sort(key=abs)

# then sort by the angles,swap those in descending orders

return complexList

然后在python代码中调用它,工作正常:p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值