我有一个数字向量,我想将每四个元素存储到一个单元格中。因此前4个元素将进入第一个单元格,接下来的四个元素将进入第二个单元格,依此类推。
有没有办法在不使用循环的情况下执行此操作?谢谢!
答案 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)