小编J.A*_*vra的帖子

沿对角线子集对称矩阵

我有一个8x8的矩阵,例如A=rand(8,8)。我需要做的是沿对角线对所有2x2矩阵进行子集化。这意味着,我需要保存矩阵A(1:2,1:2)A(3:4,3:4)A(5:6,5:6)A(7:8,7:8)。为了更好地说明自己,我使用的当前版本如下:

 AA = rand(8,8);
 BB = zeros(8,2);
 for i = 1:4
     BB(2*i-1:2*i,:) = AA(2*i-1:2*i,2*i-1:2*i);
 end
Run Code Online (Sandbox Code Playgroud)

这适用于小型AA矩阵和小型AA子矩阵,但是随着大小的显着增长(甚至可能达到50,000x50,000),使用上述for循环无法实现。有没有办法实现上述目的而没有循环?我考虑过其他可能利用上下三角形矩阵的方法,但是即使在某些时候,这些方法似乎也需要循环。任何帮助表示赞赏!

arrays matlab matrix

5
推荐指数
1
解决办法
54
查看次数

标签 统计

arrays ×1

matlab ×1

matrix ×1