将载体的元素存储到细胞中

时间:2016-06-29 02:40:00

标签: matlab cell-array

我有一个数字向量,我想将每四个元素存储到一个单元格中。因此前4个元素将进入第一个单元格,接下来的四个元素将进入第二个单元格,依此类推。

有没有办法在不使用循环的情况下执行此操作?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用mat2cell来执行此操作

data = 1:16;
output = mat2cell(data, 1, (numel(data)/4) * ones(1,4))

%   output{1} =
%   
%      1   2   3   4
%   
%   output{2} =
%   
%      5   6   7   8
%   
%   output{3} =
%   
%       9   10   11   12
%   
%   output{4} =
%   
%      13   14   15   16

我个人认为输入格式有点令人困惑。另一种方法是将矩阵重新整形为4行,然后使用num2cell将每列拆分为自己的单元格。

data = 1:16;
output = num2cell(reshape(data, 4, []), 1)