Matlab中cell2mat的使用
binIndices是1*50的cell,每个cell是的1*n(n不定),那么cell2mat(binIndices)得到的是1*sum(cellfun(@length,binIndices))的行向量,比如{1 2 3} {4 5 6}2个cell,得到的是[1 2 3 4 5 6]的行向量。
这样我以为是按列组织,其实不是这样的,估计是按行。
- K>> aa = cell{[1;2;3] [4;5;6]}
- aa = cell{[1;2;3] [4;5;6]}
- 错误: 圆括号或方括号不对称或异常。
- K>> aa = cell{[1;2;3];[4;5;6]}
- aa = cell{[1;2;3];[4;5;6]}
- 错误: 圆括号或方括号不对称或异常。
- K>> aa = {[1;2;3];[4;5;6]}
- aa =
- [3x1 double]
- [3x1 double]
- K>> bb=cell2mat(aa)
- bb =
- 1
- 2
- 3
- 4
- 5
- 6
...................................................
单纯说按行按列不好理解,直接看例子,明白就好。
- K>> aa = {[1;2;3] [4;5;6]}
- aa =
- [3x1 double] [3x1 double]
- K>> bb = cell2mat(aa)
- bb =
- 1 4
- 2 5
- 3 6
那么究竟该如何理解呢?看例子。
- 看matlab给的例子。
- Example:
- C = {[1] [2 3 4]; [5; 9] [6 7 8; 10 11 12]};
- M = cell2mat(C)
- 结果:
- M =
- 1 2 3 4
- 5 6 7 8
- 9 10 11 12
在学习神经网络,BP网络函数里我也遇到这个问题,现在可以解释了。
cell是元胞数组,mat是matrix的缩写。
首先,C = {[1] [2 3 4]; [5; 9] [6 7 8; 10 11 12]};
C元素以“;”为间隔,有两行,没一行也有两个子元素。得到
C{1,1}=1; %为一行一列
C{1,2}=2 3 4; %为一行三列
C{2,1}=5
9; %为两行一列
C{2,2}=6 7 8
10 11 12; %为两行三列
上面这几个可以在matlab里运行求出来。反别将这几组数据结合起来。
[C{1,1} C{1,2};
C{2,1} C{2,2}];得到
[1 2 3 4;
5 6 7 8;
9 10 11 12];
笔者注:从解析可以看出就是直接按行拼接成了矩阵,但由于元宝数组内数据可以不同为,矩阵内必须同维,所以应该不是所有的元宝素组都能转化为矩阵。
再看一个例子,a是1*50的cell,每个cell是1*26,那么cell2mat(a)是1*(50*26)的行向量,如果cell2mat(a')得到50*26。
Matlab中cell2mat的使用的更多相关文章
- matlab中元胞数组(cell)转换为矩阵
matlab中元胞数组(cell)转换为矩阵. cell转换为矩阵函数为:cell2mat(c),其中c为待转换的元胞数组: 转化之后的矩阵可能不满足我们对矩阵维数的要求,那么也许还需要下面两个函数: ...
- Matlab中save与load函数的使用
用save函数,可以将工作空间的变量保存成txt文件或mat文件等. 比如: save peng.mat p j 就是将工作空间中的p和j变量保存在peng.mat中. 用load函数,可以将数据读入 ...
- MATLAB中绘制质点轨迹动图并保存成GIF
工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...
- matlab 中 eps 的分析
eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高.默认a=1: 这里直接在matlab中输入:eps == eps(1)(true). 我们知道浮点数其实是离散的,有限的 ...
- matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
- paper 121 :matlab中imresize函数
转自:http://www.cnblogs.com/rong86/p/3558344.html matlab中函数imresize简介: 函数功能:该函数用于对图像做缩放处理. 调用格式: B = i ...
- MATLAB中FFT的使用方法
MATLAB中FFT的使用方法 说明:以下资源来源于<数字信号处理的MATLAB实现>万永革主编 一.调用方法X=FFT(x):X=FFT(x,N):x=IFFT(X);x=IFFT(X, ...
- MATLAB中fft函数的正确使用方法
问题来源:在阅读莱昂斯的<数字信号处理>第三章离散傅里叶变换时,试图验证实数偶对称信号的傅里叶变换实部为偶对称的且虚部为零.验证失败.验证信号为矩形信号,结果显示虚部是不为零且最大幅值等于 ...
- Matlab中的一些小技巧
(转于它处,仅供参考) 1.. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断.MATLAB这时可能正疲于应付,响应会有些滞后. ...
随机推荐
- UIView的frame的扩展分类,轻松取出x、y、height、width等值
一.引言: 在ios开发中,就界面搭建.控件布局时,都会很恶心的通过很长的代码才能取出控件的x.y.height.width等值,大大降低了开发效率.那为了省略这些恶心的步骤,小编在这里给UIView ...
- 【学习笔记】【C语言】break和continue
1.使用 break: 1.使用场合 1> switch语句:退出整个switch语句 2> 循环结构:退出整个循环语句 * while * do while * for 2. ...
- js中的继承1--类继承
继承:function Animal(name){ this.name = name; this.showName = function(){ alert(this.name); } } functi ...
- 巧用Excel分列功能处理数据
Technorati 标签: 数据处理 今天,主要工作就是处理测试数据,统计汇总成图表来显示.先来说说要求,然后给出我在折腾这堆数据中遇到的问题以及解决方法. 问题要求: 格 ...
- 安装新版本的mysql数据库
默认情况,在CentOS 6.8 下通过yum安装的是5.1.73版本,现在需求是安装5.7版本. -------------------------------------------------- ...
- <Linux系统hostname命令详解>
hostname命令的用法的小知识我们都知道hostname命令是查看主机名和修改主机名的. [root@apache ~]# hostname //查看本机的主机名apache.example.c ...
- JS重写alert,保证弹窗错误的友好性
// ------------------------------------------------------------- // 重写alert,保证弹窗错误的友好性 var j_oldAler ...
- [大牛翻译系列]Hadoop(2)MapReduce 连接:复制连接(Replication join)
4.1.2 复制连接(Replication join) 复制连接是map端的连接.复制连接得名于它的具体实现:连接中最小的数据集将会被复制到所有的map主机节点.复制连接有一个假设前提:在被连接的数 ...
- js读取json数据(php传值给js)
<?php $array =array('fds','fdsa','fdsafasd'); // json_encode($array); ?> <html> <hea ...
- python之递归
递归的定义:即对自己自身内容的引用. 有用的递归函数应包含以下几步份: 当函数直接返回值时有基本的实例(最小可能性问题): 递归实例,包括一个或者多个问题较小部分的递归调用: 递归的关键就是将问题分解 ...