矩阵分块用mat2cell命令,其用法如下图所示(取自Matlab Help):
例1:矩阵 A=[1 2 3 4;4 5 6 7;7 8 9 10;10 11 12 13], 将矩阵等分为4个2*2矩阵。
>> A=[1 2 3 4;4 5 6 7;7 8 9 10;10 11 12 13]
A =
1 2 3 4
4 5 6 7
7 8 9 10
10 11 12 13
>> B=mat2cell(A,[2 2],[2 2])
B =
[2x2 double] [2x2 double]
[2x2 double] [2x2 double]
对每个分块进行运算,利用cellfun函数。
例2:求上述各个分块的平均值。
>> C=cellfun(@mean,cellfun(@mean,B,'UniformOutput',false))
C =
3 5
9 11
注意最里面的mean是求各块列平均,需要再平均一次才得到每一分块的总平均。应为最里面的mean运算后得到的是cell矩阵,所以false掉‘UniformOutput’参数。外面的一个m