【发布时间】:2015-06-26 14:38:15
【问题描述】:
我在 Matlab 中有一个矩阵 A,维度为 m x 3,例如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的维度为b x 3,其中b<=m和b可以取{3,4,5,...,m}中的任何值(显然,所有行的总和为m) .在示例中,第一个和第二个子矩阵的维度为3 x 3,最后三个子矩阵的维度为4 x 3。所有相同维度的子矩阵一个接一个地堆叠。在示例中,首先我们有子矩阵
3 x 3,然后是子矩阵4 x 3。
我想计算维度为f x 1 的向量B,其中f=size(unique(A(:,2:end),'rows','stable'),1),(在示例中为f=7),这样B(i,1) 是通过将A(:,1) 的元素j 相加得到的A(j,2:end) 等于unique(A(:,2:end),'rows','stable') 的第i 行,即
B=[2-5;
3+2;
-8+6
7+3+1;
3-8+2;
1+1+7;
5+0+9]
【问题讨论】:
标签: matlab