【发布时间】:2017-12-03 05:33:21
【问题描述】:
我有一个单元格数组,它有 128 个字符长,即
c = {'1......128'}
我想做的是将它分成 8 个块,从左侧开始,然后将每个 8 个块放入一个新的单元格数组中。最简单的方法是什么?
【问题讨论】:
我有一个单元格数组,它有 128 个字符长,即
c = {'1......128'}
我想做的是将它分成 8 个块,从左侧开始,然后将每个 8 个块放入一个新的单元格数组中。最简单的方法是什么?
【问题讨论】:
一行就可以搞定
mycell = repelem('a', 128); % creating the cell
newcells = cellstr(reshape(mycell{:},8,[])'); % cells with 8 characters each
如果您的单元格只是 1x1 有 128 个字符。
【讨论】:
valS = 1;
valE = 8;
for ii=1:(128/8)
newC{ii,:} = c{valS:valE};
valS = valE + 1; % after first loop valS = 9 ...
valE = valE + 8; % after first loop valE = 16 ...
end
如果你想将 newC 完全分成不同的变量,你也可以使用 eval
【讨论】:
c 的尺寸是1x1。您还应该避免动态调整 newC 的大小。
接下来呢?
res = cell(1,16);
for ii=0:15
res{ii} = c{1}((1:8)+ii*8);
end
【讨论】: