gpt4 book ai didi

matlab - 基于任意列的条目以非递减顺序排列矩阵中的行

转载 作者:行者123 更新时间:2023-12-04 04:51:33 26 4
gpt4 key购买 nike

我正在使用 Matlab 中的 nx2 矩阵,原则上我要做的事情相当简单。我随机生成一个方阵,通过一系列函数运行它,得到一个 mx2 矩阵。我在行上使用独特的函数来摆脱重复的行,最终得到一个 nx2 矩阵。我在做的事情是进一步减少这个矩阵,以便对于第一列中具有完全相同条目的所有条目,只保留第二列中编号最高的行。

我正在使用循环来检查第一列的第 i 个和第 (i+1) 个条目,并将具有最高值的行存储在第二列中,但我试图尽可能避免 for 循环。

如果有人有任何想法或建议,请告诉我!

示例:

        0  0                            0  0     
0 1 0 1 0 3
A= 0 3 ---> unique(A, 'rows') = 0 3 --WANT--> 1 1
1 0 1 0 2 4
1 0 1 1
0 0 2 1
2 1 2 4
1 1
2 4

最佳答案

您正在寻找的是:

[u,~,n] = unique(A(:,1));
B = [u, accumarray(n, A(:,2), [], @max)];

关于matlab - 基于任意列的条目以非递减顺序排列矩阵中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17358970/

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