matlab中有虚数j吗,在MATLAB中用虚数部分对复数数组元素排序

我有一组数据点,它们是复数,它们有8行6列。如果你看看这个程序,你可以看到数据集是非常随机排列的。第1,2,3列没问题,但是第4列有点异常。我的意思是说,在B(5,4)的元素(即25.9868674011374)之后它来到2.74257567017122 [B(6,4)],而不是26.8410063269595已经到B(6,6)。我希望该列按升序排列(每个排序都应该为实际部分完成)。而且,在第5列中,即使真实部分ae按升序排列,虚部也是交换的。例如,在B(2,5)之后它应该是B(3,6)而不是B(3,5)。我尝试了'排序'命令,但它不能按我的要求工作。在MATLAB中用虚数部分对复数数组元素排序

对于谁是想知道西隧是有某种实际问题的人,只是试图运行这个命令:

A = [1+2i 3+i i 0 -i]; Dreal= sort(real(A)); Dimg = sort(imag(A));D=[Dreal;Dimg];

我要的是-i,0,I,3 + 1,1 + 2 1,什么样的产品是别的。

此外,可能会出现第4,5和6列可能“正常”表现的情况,但第1,2,3列的行为不正常。因此,即使第4,5,6列的行为“正常”,我也希望它按升序排序。任何方式通过这个?由此,我使用Matlab-2015b。代码是:

clear all; clc;

B=[-2.14981736484179 + 0.00000000000000i,-1.38134547606946 + 0.00000000000000i,1.38451324569297 + 0.00000000000000i,22.5759136576435 + 0.00000000000000i,2.28536796878740 + 0.333911501246080i,2.28536796878740 - 0.333911501246080i;-2.22047322414157 + 0.00000000000000i,-1.43596350944258 + 0.00000000000000i,1.43889226552228 + 0.00000000000000i,23.4278498788255 + 0.00000000000000i,2.39484729461819 + 0.303429715954385i,2.39484729461819 - 0.303429715954385i;-2.29148887606605 + 0.00000000000000i,-1.49057388951113 + 0.00000000000000i,1.49328382360683 + 0.00000000000000i,24.2803021611395 + 0.00000000000000i,2.50423839041542 - 0.265225265037282i,2.50423839041542 + 0.265225265037282i;-2.36284412024645 + 0.00000000000000i,-1.54517861014711 + 0.00000000000000i,1.54768832224205 + 0.00000000000000i,25.1333019698605 + 0.00000000000000i,2.61351621914550 + 0.215386193278572i,2.61351621914550 - 0.215386193278572i;-2.43451884781340 + 0.00000000000000i,-1.59977935450756 + 0.00000000000000i,1.60210590260749 + 0.00000000000000i,25.9868674011374 + 0.00000000000000i,2.72266244928806 - 0.142395604889199i,2.72266244928806 + 0.142395604889199i;-2.50649346218904 + 0.00000000000000i,-1.65437753673930 + 0.00000000000000i,1.65653651325774 + 0.00000000000000i,2.74257567017122 + 0.00000000000000i,2.92075248853987 + 0.00000000000000i,26.8410063269595 + 0.00000000000000i;-2.57874914363635 + 0.00000000000000i,-1.70897433922564 + 0.00000000000000i,1.71097996266870 + 0.00000000000000i,2.74509085049068 + 0.00000000000000i,3.13593380433481 + 0.00000000000000i,27.6957188653678 + 0.00000000000000i;-2.65126800477853 + 0.00000000000000i,-1.76357074549849 + 0.00000000000000i,1.76543595943333 + 0.00000000000000i,2.78382099280761 + 0.00000000000000i,3.31458248082037 + 0.00000000000000i,28.5509993172157 + 0.00000000000000i];

k=1:1:4;

B1=sort(real(B));

B2=sort(imag(B));

B3=sort(B);

在此先感谢。

+1

首先排序'I'排序的矢量。 ''[〜,I] = sort(imag(A)); result = A(I)' –

+0

你说过每一个排序都应该用于实部,但是你的例子是用虚数值排序的。所以你想要什么? –

+0

@ rahnema1请添加它作为答案,因为它似乎是OP正在寻找的答案。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值