2016-06-29 80 views
0

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

有没有办法做到这一点,而不使用循环?谢谢!

回答

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) 
+0

感谢您的帮助!我个人更喜欢第二种方法,因为它更容易理解! – TYL

相关问题