matlab 等分数组,科学网-Matlab: 如何对矩阵分块并对各块进行运算-刘磊的博文

矩阵分块用mat2cell命令,其用法如下图所示(取自Matlab Help):

8511413cad2eed61a2db8004747b25d9.png

例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’参数。外面的一个mean运算得到的是数组,就不需要这样做了(默认的是不false)

例3:求上述各分块的总和。

>> D=cellfun(@sum,cellfun(@sum,B,'UniformOutput',false))

D =

12    20

36    44

这个例子展示了cell型矩阵的运算并不需要用新的函数,只是需要将对应的矩阵运算符与cellfun函数结合即可。

转载本文请联系原作者获取授权,同时请注明本文来自刘磊科学网博客。

收藏

分享

分享到:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值