bmake obj && bmake all
如何在忽略NaN的同时按降序对此向量进行排序?得到的向量必须与bmake(1)
具有相同的长度,即我需要将所有NaN放在最后。结果应该是这样的:
mockup = [3,5,nan,2,4,nan,10,nan];
实际上,我对各个索引感兴趣,即mockup
函数的第二个输出向量。所以,我在寻找
mockupSorted = [10,5,4,3,2,NaN,NaN,NaN]
答案 0 :(得分:5)
您可以使用sort
的两个输出,然后使用isnan
修改两个输出的顺序。
[vals, inds] = sort(mockup, 'descend');
bool = isnan(vals);
mocksorted = [vals(~bool), vals(bool)];
% 10 5 4 3 2 NaN NaN NaN
mocksortedind = [inds(~bool), vals(bool)];
% 7 2 5 1 4 NaN NaN NaN
另一个选项是使用ascend
排序,只对mockup
的否定排序,因为ascend
排序会将NaN
值放在最后。
[vals, inds] = sort(-mockup);
mocksorted = -vals;
mocksortedind = inds;