2017-06-29 106 views
1

我有一个单元阵列,使得其长128个字符,即MATLAB分区单元阵列

c = {'1......128'} 

我想做的是它分解成8块,从左边开始,然后将每个8块块放入一个新的单元阵列中。什么是最简单的方法来做到这一点?

回答

4

你可以用一条线做

mycell = repelem('a', 128); % creating the cell 

newcells = cellstr(reshape(mycell{:},8,[])'); % cells with 8 characters each 

,如果你的电池只是1x1用128个字符。

1
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 

你也可以使用eval如果你想NEWC分为不同的变量完全

+0

这不起作用,因为'c'的尺寸是1x1。你也应该避免动态调整'newC'的大小。 – Loamsiada

0

有关下列哪些?

res = cell(1,16); 
for ii=0:15 
    res{ii} = c{1}((1:8)+ii*8); 
end