我有A = [1 2 3; 4 5 6; 7 8 9; 10 11 12; 13 14 15; 9 8 7; 8 7 6; 7 6 5]
如何减去四个矩阵A1 = [1 2 3; 4 5 6] A2 = [7 8 9; 10 11 12] A3 = [13 14 15; 9 8 7] A4 = [8 7 6; 7 6 5],考虑到子矩阵的A1,A2,A3和A4名称,用于循环。感谢。
答案 0 :(得分:0)
好的,如果你有一个变量num
来指示你想要的输出矩阵的数量(在这种情况下是4),试试这个:
B = cell(1, num);
B_size = size(A, 1) / num;
for i = 1:num
B{i} = A((B_size * (i - 1) + 1):B_size * i, :);
end
B
将是一个包含四个元素的单元格数组,相当于您对A1
到A4
的想法。显然,不均匀划分列总数的num
值不会很好。
答案 1 :(得分:0)
A = [ 1 2 3; 4 5 6; 7 8 9; 10 11 12; 13 14 15; 9 8 7; 8 7 6; 7 6 5];
for ii = 1:(length(A)/2)
eval(['A' num2str(ii) '=A(' num2str(2*ii-1) ':' num2str(2*ii) ',:)'])
end
解决方案使用eval。 'A'num2str(ii)对应于A1,A2,A3和A4。 for循环从1到4(长度(A)/ 2 = 4)
答案 2 :(得分:0)
不是定义不同的变量A1
,A2
,......,最好像这样重塑原始矩阵A
A = permute(reshape(A, [2 size(A,1)/2 size(A,2)]), [1 3 2]);
现在A(:,:,1)
,A(:,:,2)
,...对应您所需的变量A1
,A2
,...