如何把矩阵快速转化为cell元胞

  • Post author:
  • Post category:其他




如何把矩阵快速转化为cell元胞

有2种方法,均是直接调用Matlab的内置函数,直接高效。


第一种方法:num2cell函数


num2cell函数的作用是将mat类型转化为cell类型,调用格式:B = num2cell(A,dim)

以A = [1:3;4:6]为例

A =

     1     2     3
     4     5     6

①:将A中每一个元素都转化为cell类型

B = num2cell(A)

B =

  2×3 cell 数组

    [1]    [2]    [3]
    [4]    [5]    [6]

②:将A的每一列都转化为一个cell

B = num2cell(A,1)

B =

  1×3 cell 数组

    [2×1 double]    [2×1 double]    [2×1 double]

③:将A的每一行都转化为一个cell

B =

  2×1 cell 数组

    [1×3 double]
    [1×3 double]


第二种方法:mat2cell函数


mat2cell函数的作用是将矩阵分割成不同cell元胞,调用格式为:B = mat2cell(A,M,N)

其中A为待分解的矩阵,M、N为矩阵。

仍以A = [1:3;4:6]为例

A =

     1     2     3
     4     5     6

若想将A分割为[1;4] 和 [2 3; 5 6]这样的两个矩阵,则调用方法为:

 B = mat2cell(A,2,[1 2])

B =

  1×2 cell 数组

    [2×1 double]    [2×2 double]

在这里插入图片描述

若想将A分割为[1 2 3] 和 4 5 6]这样的两个矩阵,则调用方法为:

 B = mat2cell(A,[1;1],3)

B =

  2×1 cell 数组

    [1×3 double]
    [1×3 double]

在这里插入图片描述

对自己学习的总结,也希望能够帮助到像自己一样迷茫的人。

参考内容:


Matlab num2cell函数的用法



matlab中的mat2cell及cellfun使用



版权声明:本文为weixin_44803715原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。