我正在用matlab分析多路电路的效率。输出为最大工作距离,分析了电路的功率。该向量的输出如下:
>> display(distance)
distance =
8 21 21 4 3 8 3 8 2 6 10 7 6 8 12 11 6 8
>>display(power)
power =
Columns 1 through 13
3.2047 3.5666 3.7578 1.8184 3.0810 3.7973 2.8699 3.3953 2.5971 3.1933 3.8191 3.7992 3.4802
Columns 14 through 18
4.1104 4.0836 3.2191 3.9155 0.2394正如你所看到的,我有电路1,它的功率为3.2047,最大距离为8米。我有电路6,它的最大距离与3.7973电源相同。我希望重新排列distance向量,使其成为新月(例如,从2开始,以21结尾),并能够相应地重新排列power。下面你有一个display,我希望看到这样做来澄清这个问题。
>> display(distanceReorganized)
distanceReorganized =
2 3 3 4 6 6 6 7 8 8 8 8 8 10 11 12 21 21
>>display(powerReorganized)
powerReorganized =
Columns 1 through 13
2.5971 2.8699 3.0810 1.8184 3.1933 3.4802 3.9155 3.7992 0.2394 3.2047 3.3953 3.7973 4.1104
Columns 14 through 18
3.8191 3.2191 4.0836 3.5666 3.7578发布于 2019-11-20 16:12:10
使用来自sort的sort。
[~,I] = sort(distance, 'ascend');
distanceReorganized = distance(I);
powerReorganized = power(I);编辑:基于您的评论,sortrows应该做您想要做的事情:
circuitData = table(distance', power', 'VariableNames', {'Distance', 'Power'});
sortrows(circuitData,{'Distance','Power'})然后,如果愿意,可以将表的列重新分配给新的向量变量。
这是水晶石的文档。
https://stackoverflow.com/questions/58957423
复制相似问题