我有一个像这样的矩阵A
:
A = [911 911;
0 2;
8 5;
7 3;
911 911;
5 3;
1 6;
6 7;
911 911;
3 5;
8 4];
我想基于行值A
将矩阵A1
分成三个矩阵(A2
,A3
,911
),如下所示:< / p>
A1 = [0 2; 8 5; 7 3];
A2 = [5 3; 1 6; 6 7];
A3 = [3 5; 8 4];
我需要在for
循环中执行此操作,该循环将逐个给出分散的矩阵。
这是我的小代码,它将找出行位置以找出911
值:
key = 911;
headeridx = and(any(s1Table == key, 2), any(s1Table == key, 2));
row_position= find(headeridx);
然后,我对如何进行for
循环(我需要此循环)以生成三个矩阵感到困惑。
答案 0 :(得分:0)
这是一种实现方式。
clear
A = [911 911;
0 2;
8 5;
7 3;
911 911;
5 3;
1 6;
6 7;
911 911;
3 5;
8 4];
ar=0;
n=1;
for k=1:rows(A)
if A(k,1)==911
ar=ar+1;
n=1;
else
q{ar,n}=A(k,1:2);
n=n+1;
endif
endfor
A1=cell2mat(q(1,:)')
A2=cell2mat(q(2,:)')
A3=cell2mat(q(3,:)')