首页 > 编程知识 正文

矩阵分块求职,分块矩阵的运算例题

时间:2023-05-03 21:19:02 阅读:174005 作者:865

mat2cell函数是将矩阵转换成单元阵列(cell array ),在数学语言中是矩阵的块。 其含义和使用方法可以在matlab的帮助文档中清楚地说出来。

另一方面,cellfun函数是求加法、求平均值等对所有块进行相同操作的函数,通过使用该函数可以避免写for循环,也是matlab量化运算的一个例子。 让我举一个例子来说明。

%生成10*5的随机矩阵,矩阵为0到50的整数matrix=任性的毛巾(50,10,5 ); 变换为%单元阵列MC=mat2cell(matrix,[3 5 2],[3 2] ); %求每个块中所有元素之和sum_of_everyone=cellfun(@ ) x ) sum ) x ) : ),mc ) 123456 123456 matrix

MCMC { 1,1 }=

181093133236329 MC { 2,1 }=

031389398626184628255043 MC { 3,1 }=

32617411714 MC { 1,2 }=

13041412550 MC { 2,2 }=

2454411372342391 MC { 3,2 }=

28 2448 48

对每一块进行运算,利用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函数就可以了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。