Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/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_Unique - Fatal编程技术网

Matlab 计算矩阵某些部分中重复元素的最大值

Matlab 计算矩阵某些部分中重复元素的最大值,matlab,unique,Matlab,Unique,我有一个2000x2矩阵,“对于该矩阵的每个10x2段”,我需要计算矩阵中重复值(第一列)对应值(第二列)的最大值。如果矩阵的第三个10x2段是: ... [2 20; 2 30; 2 40; 7 100; 7 110; 7 120; 7 130; 7 140; 15 240; 15 260] ... 我想得到这个: ... [2 40; 7 140; 15 260] ... 等等。我已经写了以下内容,但它通过“整个矩阵”为我提供了最大的重复元素: 但同样,我需要对矩阵的每个单独的10x

我有一个2000x2矩阵,“对于该矩阵的每个10x2段”,我需要计算矩阵中重复值(第一列)对应值(第二列)的最大值。如果矩阵的第三个10x2段是:

...
[2 20;
2 30;
2 40;
7 100;
7 110;
7 120;
7 130;
7 140;
15 240;
15 260]
 ...
我想得到这个:

...
[2 40;
7 140;
15 260]
 ...
等等。我已经写了以下内容,但它通过“整个矩阵”为我提供了最大的重复元素:

但同样,我需要对矩阵的每个单独的10x2段执行此操作,然后将结果存储在一个“任意x2”大小的矩阵中!有人知道我怎么做吗?

不用
A(:,2)
作为Accumaray的参数,您可以使用值的索引,并使用它们提取函数句柄中的元素

A = randi(5,50,2);
val = (1:size(A,1)).';
B = accumarray( ...
    [A(:,1) ceil(val/10)], val, [], ...
    @(x){[ A(x(1), 1) max(A(x, 2)) ]} ...
);
result = vertcat(B{:});

首先,我要将矩阵重塑为
10x2
1。
A = randi(5,50,2);
val = (1:size(A,1)).';
B = accumarray( ...
    [A(:,1) ceil(val/10)], val, [], ...
    @(x){[ A(x(1), 1) max(A(x, 2)) ]} ...
);
result = vertcat(B{:});