MATLAB 矩阵分块函数 mat2cell 及 cellfun 函数

为了清理桌面上的 words, so do this!

在做一个项目的时候,接触到了这个函数,瞬间感觉好有用,遂记录之。(好像有点废话……)

mat2cell 函数就是将矩阵转化成胞元数组(cell array),用数学的语言讲就是矩阵分块。其意义和用法可以用 matlab 的帮助文档说清楚:

cellfun 函数就是对每一个块做相同的操作,例如求和、求均值等等,用这个函数就避免了写 for 循环了,也算是 matlab 向量化运算的一个例子。下面用一个例子说明之。

% 生成一个 10*5 的随机矩阵,矩阵取值在 0 到 50 内的整数
matrix = randi(50, 10, 5);
% 转换成胞元数组
mc = mat2cell(matrix, [3 5 2], [3 2]);
% 求每一块的所有元素之和
sum_of_everyone = cellfun(@(x) sum(x(:)), mc)

matrix

mc mc{1,1} =

18    10     9
 3    13    32
36     3    29

mc{2,1} =

50    31    38
 9    39     8
 6    26    18
46     2     8
25    50    43

mc{3,1} =

43    26    17
41    17    14

mc{1,2} =

 1    30
41    41
25    50

mc{2,2} =

27    45
44    11
37     2
34    23
 9     1

mc{3,2} =

28    24
48    48

每一块的和 sum_of_everyone =

 153   188
 399   233
 158   148

OK,该睡觉了!明天还要考最坑爹的模式识别~

END

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

令人困惑的TensorFlow!

我叫 Jacob,是 Google AI Resident 项目的研究学者。我是在 2017 年夏天加入该项目的,尽管已经拥有了丰富的编程经验,并且对机器学习的...

1173
来自专栏C语言C++游戏编程

400行代码编C语言控制台界版2048游戏,编写疯子一样的C语言代码

《2048》是最近比较流行的一款数字游戏。原版2048首先在github上发布,原作者是Gabriele Cirulli。它是基于《1024》和《小3传奇》(T...

310
来自专栏章鱼的慢慢技术路

《算法图解》第一章笔记与课后练习_二分查找算法

1834
来自专栏自然语言处理

程序员眼中的统计学5

定义:若具有性质A的事件有m个,具有性质B的事件有n个,则具有性质A或性质B的事件有m+n个。

693
来自专栏racaljk

中文分词基本算法主要分类

基于词典的方法、基于统计的方法、基于规则的方法、(传说中还有基于理解的-神经网络-专家系统)

994
来自专栏SimpleAI

令人困惑的TensorFlow【1】

我叫 Jacob,是 Google AI Resident 项目的研究学者。我是在 2017 年夏天加入该项目的,尽管已经拥有了丰富的编程经验,并且对机器学习的...

702
来自专栏章鱼的慢慢技术路

《算法图解》第一章笔记与课后练习

2384
来自专栏PHP在线

PHP CodeBase: 生成N个不重复的随机数

有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次。前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空。那么你会如何...

2655
来自专栏祝威廉

从DataFrame自动化特征抽取的尝试

虽然提供了很多Estimator/Transformer, 正如这篇文章所显示的,如何基于SDL+TensorFlow/SK-Learn开发NLP程序,处理的代...

663
来自专栏大数据风控

如何在R中绘制热力地图

一、首先绘画出地图map 地图(map) 按一定的比例运用符号、颜色、文字注记等描绘显示地球表面的自然地理、 行政区域、社会经济状况的图形。 地...

26410

扫码关注云+社区