我有以下矩阵
A=[11 23 32 12; 18 54 63 14; 43 32 13 65; 23 64 53 14; 65 54 63 72]
给定的矩阵是5x4矩阵。我想创建5x1矩阵,其中每个元素是4x1的矩阵。例如,[11 23 32 12]
将保留在矩阵中,矩阵是新创建的5x1矩阵的第一个元素。
我试过这个:
Y_new_cell=mat2cell(Y_new_cov1,[4 1],[1 10]);
但它显示以下错误:
Input arguments, D1 through D2, must sum to each dimension of the input matrix size, [10 4].'
答案 0 :(得分:4)
行人路是这样的:
Y={A(1,:); A(2,:); A(3,:); A(4,:); A(5,:)}
另一种方法是使用arrayfun
:
Y = arrayfun(@(ri) A(ri, :), 1:5, 'UniformOutput', 0)
这会将行索引应用于向量1:5
的每个元素,并将结果作为单元格返回。
或者,如果您想使用mat2cell
,请使用rowdist
方式致电:
Y = mat2cell(A, ones(5,1));