Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 基于任意列的条目以非降序重排序矩阵中的行_Matlab - Fatal编程技术网

Matlab 基于任意列的条目以非降序重排序矩阵中的行

Matlab 基于任意列的条目以非降序重排序矩阵中的行,matlab,Matlab,我在Matlab中使用nx2矩阵,我尝试做的原则上相当简单。我随机生成一个方阵,通过一系列函数运行它,得到一个mx2矩阵。我对行使用unique函数来消除重复的行,最后得到一个nx2矩阵。我所遇到的困难是进一步缩小这个矩阵,以便对于第一列中具有完全相同的条目的所有条目,只保留第二列中数字最大的行 我使用循环检查第一列的第I个和(I+1)个条目,并将值最高的行存储在第二列中,但我尽量避免使用循环 如果有人有想法或建议,请让我知道 例如: 0 0

我在Matlab中使用nx2矩阵,我尝试做的原则上相当简单。我随机生成一个方阵,通过一系列函数运行它,得到一个mx2矩阵。我对行使用unique函数来消除重复的行,最后得到一个nx2矩阵。我所遇到的困难是进一步缩小这个矩阵,以便对于第一列中具有完全相同的条目的所有条目,只保留第二列中数字最大的行

我使用循环检查第一列的第I个和(I+1)个条目,并将值最高的行存储在第二列中,但我尽量避免使用循环

如果有人有想法或建议,请让我知道

例如:

        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)];

我想对行进行排序可以解决部分问题,但是使用unique(矩阵“rows”)也可以自动对行进行排序。希望通过这个例子,你能看到我想要实现的目标。