我将3x3矩阵D聚合为2x2(将列/行1和2加在一起)。矩阵D的行和列的名称保持在1×3向量m中。 我正在寻找一种方法来通过删除一个元素来聚合向量M,使其大小为2x1。
给出3x3矩阵D:
D =
1 2 3
4 5 6
7 8 9
和2x3聚合矩阵S:
S =
1 1 0
0 0 1
我通过以下方式将D聚合成2x2矩阵:
D = S*D*S'
D =
12 15
9 9
列和行的名称存储在3x1向量m中。
m =
'A'
'B'
'C'
我想删除元素2(' B'),因此最终输出如下所示:
m =
'A'
'C'
有什么建议吗?
答案 0 :(得分:0)
我假设您要查找块对角矩阵的块的左上角并返回其列索引。
例如,对于以下矩阵:
11100 10000
11100 00000
00010 => 00010
00010 00000
00001 00001
结果为[1 4 5]
。
S = [1 1 0
0 0 1];
m = {'A';'B';'C'};
sz = size(S);
h = diff([zeros(sz(1),1),S],1,2)>0;
v = diff([zeros(1,sz(2));S],1,1)>0;
[~,idx]=find(h&v);
result = m(idx)