gpt4 book ai didi

matlab - 用 NaN 对矩阵进行排序,提取索引向量并将 NaN 移到末尾

转载 作者:行者123 更新时间:2023-12-01 18:51:11 25 4
gpt4 key购买 nike

模型 = [3,5,nan,2,4,nan,10,nan];

如何在忽略 NaN 的情况下按降序对该向量进行排序?生成的向量必须与模型具有相同的长度,即我需要将所有 NaN 放在末尾。结果应该是这样的:mockupSorted = [10,5,4,3,2,NaN,NaN,NaN]

实际上,我对各个索引感兴趣,即 sort 函数的第二个输出向量。所以,我正在寻找mockupSortedIdx = [7,2,5,1,4,NaN,NaN,NaN]

最佳答案

您可以使用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;

关于matlab - 用 NaN 对矩阵进行排序,提取索引向量并将 NaN 移到末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41348017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com