Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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中带非标量下标的Accumarray?_Matlab - Fatal编程技术网

Matlab中带非标量下标的Accumarray?

Matlab中带非标量下标的Accumarray?,matlab,Matlab,我在Matlab中有一个矩阵a,其维数为mx3,例如m=18 A=[ 2| 1 1; 3| 1 2; -8| 1 3; ------- -5| 1 1; 2| 1 2; 6| 1 3; ------- 7| 2 1; 3| 2 2; 1| 2 3; 5| 2 4; ------- 3| 2 1; -8| 2 2; 1| 2 3; 0| 2 4; ------- 1|

我在Matlab中有一个矩阵
a
,其维数为
mx3
,例如
m=18

A=[ 2| 1 1;
    3| 1 2;
   -8| 1 3;
   -------
   -5| 1 1;
    2| 1 2;
    6| 1 3;
   -------
    7| 2 1;
    3| 2 2;
    1| 2 3;
    5| 2 4;
   -------
    3| 2 1;
   -8| 2 2;
    1| 2 3;
    0| 2 4;
   -------
    1| 2 1;
    2| 2 2;
    7| 2 3;
    9| 2 4]
A
的特点如下:

  • 它由
    t
    子矩阵组成。在示例
    t=5


  • 每个子矩阵
    t
    都有维度
    bx3
    b在检查行上的
    A
    时使用
    unique
    的第三个输出,并使用
    'stable'
    标志,然后将其作为
    accumarray
    的输入。第三个输出为矩阵
    a
    中出现的行向量的每个唯一匹配项分配一个唯一ID,非常适合在
    accumarray
    中使用:

    [~,~,f] = unique(A(:,2:end), 'rows', 'stable');
    B = accumarray(f, A(:,1));
    
    我们得到:

    B =
    
        -3 %// 2-5
         5 %// 3+2
        -2 %// -8+6
        11 %// 7+3+1
        -3 %// 3-8+2
         9 %// 1+1+7
        14 %// 5+0+9
    
    B =
    
        -3 %// 2-5
         5 %// 3+2
        -2 %// -8+6
        11 %// 7+3+1
        -3 %// 3-8+2
         9 %// 1+1+7
        14 %// 5+0+9