【问题标题】:Matlab: covert m x n matrix into 1 x n cell array [duplicate]Matlab:将m x n矩阵转换为1xn单元阵列[重复]
【发布时间】:2018-02-26 12:29:45
【问题描述】:

我是 matlab 新手,我需要帮助将矩阵的列转换为单元格。很快,我想将一个 m x n 矩阵转换为一个 1 x n 单元格。谢谢。

【问题讨论】:

    标签: matlab matrix cell


    【解决方案1】:

    您可以使用mat2cell 将数组转换为元胞数组。

    例如:

    A=randi(10,4,3)
    A =
    
         7     3     7
         2     1     4
         8     1    10
         1     9     1
    
    C = mat2cell(A, size(A,1), ones(1, size(A,2)))
    
    C = 
    
        [4x1 double]    [4x1 double]    [4x1 double] 
    

    【讨论】:

    【解决方案2】:

    这可以很容易地使用num2cell function

    A = rand(10,3); % 10x3 double
    B = num2cell(A,1); % 1x3 cell
    

    接受两个参数的函数的重载允许指定A 的哪些维度必须包含在每个单元格中(在您的情况下1 用于保留列)。

    这是上面代码的输出:

    A =
       0.397834   0.020575   0.575226
       0.634913   0.308506   0.322361
       0.093287   0.869059   0.456526
       0.105290   0.460232   0.252258
       0.593683   0.601639   0.821970
       0.688173   0.035032   0.118435
       0.152389   0.282520   0.713495
       0.903715   0.447344   0.905132
       0.773059   0.431924   0.110345
       0.932476   0.514999   0.140519
    
    B = 
    {
      [1,1] =
    
         0.397834
         0.634913
         0.093287
         0.105290
         0.593683
         0.688173
         0.152389
         0.903715
         0.773059
         0.932476
    
      [1,2] =
    
         0.020575
         0.308506
         0.869059
         0.460232
         0.601639
         0.035032
         0.282520
         0.447344
         0.431924
         0.514999
    
      [1,3] =
    
         0.57523
         0.32236
         0.45653
         0.25226
         0.82197
         0.11844
         0.71350
         0.90513
         0.11034
         0.14052 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多