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的使用的更多相关文章

  1. matlab中元胞数组(cell)转换为矩阵

    matlab中元胞数组(cell)转换为矩阵. cell转换为矩阵函数为:cell2mat(c),其中c为待转换的元胞数组: 转化之后的矩阵可能不满足我们对矩阵维数的要求,那么也许还需要下面两个函数: ...

  2. Matlab中save与load函数的使用

    用save函数,可以将工作空间的变量保存成txt文件或mat文件等. 比如: save peng.mat p j 就是将工作空间中的p和j变量保存在peng.mat中. 用load函数,可以将数据读入 ...

  3. MATLAB中绘制质点轨迹动图并保存成GIF

    工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...

  4. matlab 中 eps 的分析

    eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高.默认a=1: 这里直接在matlab中输入:eps == eps(1)(true). 我们知道浮点数其实是离散的,有限的 ...

  5. matlab中patch函数的用法

    http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...

  6. paper 121 :matlab中imresize函数

    转自:http://www.cnblogs.com/rong86/p/3558344.html matlab中函数imresize简介: 函数功能:该函数用于对图像做缩放处理. 调用格式: B = i ...

  7. MATLAB中FFT的使用方法

    MATLAB中FFT的使用方法 说明:以下资源来源于<数字信号处理的MATLAB实现>万永革主编 一.调用方法X=FFT(x):X=FFT(x,N):x=IFFT(X);x=IFFT(X, ...

  8. MATLAB中fft函数的正确使用方法

    问题来源:在阅读莱昂斯的<数字信号处理>第三章离散傅里叶变换时,试图验证实数偶对称信号的傅里叶变换实部为偶对称的且虚部为零.验证失败.验证信号为矩形信号,结果显示虚部是不为零且最大幅值等于 ...

  9. Matlab中的一些小技巧

    (转于它处,仅供参考) 1.. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断.MATLAB这时可能正疲于应付,响应会有些滞后. ...

随机推荐

  1. Struts2基本包作用详解

    asm-3.3.jar作用:操作java字节码的类库包路径及主要类:未提供 asm-commons-3.3.jar作用:提供了基于事件的表现形式包路径及主要类:未提供 asm-tree-3.3.jar ...

  2. 备忘-zTree v3.5 Demo 演示

    zTree v3.5 Demo 演示: http://www.ztree.me/v3/demo.php#_110

  3. 【学习笔记】【C语言】数组

    1. 什么是数组 数组,从字面上看,就是一组数据的意思,没错,数组就是用来存储一组数据的 2. 数组的特点 只能存放一种类型的数据,比如int类型的数组.float类型的数组 里面存放的数据称为“元素 ...

  4. Java对象初始化详解(转)

    在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.本文试图对Java如何执行对象的初始化做一个详细深入地介绍(与对象初始化相同,类在被加载之后也是需要初始化的,本 ...

  5. Android开发:碎片Fragment完全解析fragment_main.xml/activity_main.xml(转)

    注明:这个转的,见谅未能标明原始出处 我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述. 但是Activ ...

  6. 水仙花数 java 实现

    题目描述: 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3.现在要求 ...

  7. arm汇编指令总结(不断更新)

    /** ****************************************************************************** * @author    Maox ...

  8. 在linux下查看内核版本、gcc版本、操作系统多少位等参数

    1. 查看linux版本 cat /etc/issue Ubuntu 11.04 \n \l 2. 查看内核版本 1)cat /proc/version Linux version 2.6.38-13 ...

  9. 转:java中volatile关键字的含义

    转:java中volatile关键字的含义 在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言 ...

  10. 【Qt】QSettings读写注册表、配置文件【转】

    简述 一般情况下,我们在开发软件过程中,都会缓存一些信息到本地,可以使用轻量级数据库sqlite,也可以操作注册表.读写配置文件. 关于QSettings的使用前面已经介绍过了,比较详细,见“更多参考 ...