2017-06-29 237 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