【发布时间】:2018-02-26 12:29:45
【问题描述】:
我是 matlab 新手,我需要帮助将矩阵的列转换为单元格。很快,我想将一个 m x n 矩阵转换为一个 1 x n 单元格。谢谢。
【问题讨论】:
我是 matlab 新手,我需要帮助将矩阵的列转换为单元格。很快,我想将一个 m x n 矩阵转换为一个 1 x n 单元格。谢谢。
【问题讨论】:
您可以使用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]
【讨论】:
这可以很容易地使用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
}
【讨论】: