访问元胞数组
Accessing a cell array
我有一个元胞数组 A,它的维度是 8 的倍数。例如 1x192,现在我想选择元素元胞数组的以下方式。
1,9,17,25...nth 个元素应该存储在单独的元胞数组中。类似地 2,10,18,26...n 在单独的单元格数组中,另一组在单独的单元格数组中为 3,11,19,27。这必须持续到 8,16,24,32..n
我如何自动执行此操作,其中元胞数组大小是动态的。但它总是8的倍数。
任何帮助将不胜感激谢谢
最简单的是reshape
:由于元胞数组的长度始终可以被 8 整除,因此您可以将其重塑为 8 行高。然后每一行都是您单独的单元格数组之一:
>> c = num2cell(1:192);
>> c8 = reshape(c(:), 8, [])
c8 =
8x24 cell array
Columns 1 through 9
{[1]} {[ 9]} {[17]} {[25]} {[33]} {[41]} {[49]} {[57]} {[65]}
{[2]} {[10]} {[18]} {[26]} {[34]} {[42]} {[50]} {[58]} {[66]}
{[3]} {[11]} {[19]} {[27]} {[35]} {[43]} {[51]} {[59]} {[67]}
{[4]} {[12]} {[20]} {[28]} {[36]} {[44]} {[52]} {[60]} {[68]}
{[5]} {[13]} {[21]} {[29]} {[37]} {[45]} {[53]} {[61]} {[69]}
{[6]} {[14]} {[22]} {[30]} {[38]} {[46]} {[54]} {[62]} {[70]}
{[7]} {[15]} {[23]} {[31]} {[39]} {[47]} {[55]} {[63]} {[71]}
{[8]} {[16]} {[24]} {[32]} {[40]} {[48]} {[56]} {[64]} {[72]}
Columns 10 through 18
{[73]} {[81]} {[89]} {[ 97]} {[105]} {[113]} {[121]} {[129]} {[137]}
{[74]} {[82]} {[90]} {[ 98]} {[106]} {[114]} {[122]} {[130]} {[138]}
{[75]} {[83]} {[91]} {[ 99]} {[107]} {[115]} {[123]} {[131]} {[139]}
{[76]} {[84]} {[92]} {[100]} {[108]} {[116]} {[124]} {[132]} {[140]}
{[77]} {[85]} {[93]} {[101]} {[109]} {[117]} {[125]} {[133]} {[141]}
{[78]} {[86]} {[94]} {[102]} {[110]} {[118]} {[126]} {[134]} {[142]}
{[79]} {[87]} {[95]} {[103]} {[111]} {[119]} {[127]} {[135]} {[143]}
{[80]} {[88]} {[96]} {[104]} {[112]} {[120]} {[128]} {[136]} {[144]}
Columns 19 through 24
{[145]} {[153]} {[161]} {[169]} {[177]} {[185]}
{[146]} {[154]} {[162]} {[170]} {[178]} {[186]}
{[147]} {[155]} {[163]} {[171]} {[179]} {[187]}
{[148]} {[156]} {[164]} {[172]} {[180]} {[188]}
{[149]} {[157]} {[165]} {[173]} {[181]} {[189]}
{[150]} {[158]} {[166]} {[174]} {[182]} {[190]}
{[151]} {[159]} {[167]} {[175]} {[183]} {[191]}
{[152]} {[160]} {[168]} {[176]} {[184]} {[192]}
>> c8(4,:)
ans =
1x24 cell array
Columns 1 through 9
{[4]} {[12]} {[20]} {[28]} {[36]} {[44]} {[52]} {[60]} {[68]}
Columns 10 through 18
{[76]} {[84]} {[92]} {[100]} {[108]} {[116]} {[124]} {[132]} {[140]}
Columns 19 through 24
{[148]} {[156]} {[164]} {[172]} {[180]} {[188]}
我有一个元胞数组 A,它的维度是 8 的倍数。例如 1x192,现在我想选择元素元胞数组的以下方式。
1,9,17,25...nth 个元素应该存储在单独的元胞数组中。类似地 2,10,18,26...n 在单独的单元格数组中,另一组在单独的单元格数组中为 3,11,19,27。这必须持续到 8,16,24,32..n
我如何自动执行此操作,其中元胞数组大小是动态的。但它总是8的倍数。
任何帮助将不胜感激谢谢
最简单的是reshape
:由于元胞数组的长度始终可以被 8 整除,因此您可以将其重塑为 8 行高。然后每一行都是您单独的单元格数组之一:
>> c = num2cell(1:192);
>> c8 = reshape(c(:), 8, [])
c8 =
8x24 cell array
Columns 1 through 9
{[1]} {[ 9]} {[17]} {[25]} {[33]} {[41]} {[49]} {[57]} {[65]}
{[2]} {[10]} {[18]} {[26]} {[34]} {[42]} {[50]} {[58]} {[66]}
{[3]} {[11]} {[19]} {[27]} {[35]} {[43]} {[51]} {[59]} {[67]}
{[4]} {[12]} {[20]} {[28]} {[36]} {[44]} {[52]} {[60]} {[68]}
{[5]} {[13]} {[21]} {[29]} {[37]} {[45]} {[53]} {[61]} {[69]}
{[6]} {[14]} {[22]} {[30]} {[38]} {[46]} {[54]} {[62]} {[70]}
{[7]} {[15]} {[23]} {[31]} {[39]} {[47]} {[55]} {[63]} {[71]}
{[8]} {[16]} {[24]} {[32]} {[40]} {[48]} {[56]} {[64]} {[72]}
Columns 10 through 18
{[73]} {[81]} {[89]} {[ 97]} {[105]} {[113]} {[121]} {[129]} {[137]}
{[74]} {[82]} {[90]} {[ 98]} {[106]} {[114]} {[122]} {[130]} {[138]}
{[75]} {[83]} {[91]} {[ 99]} {[107]} {[115]} {[123]} {[131]} {[139]}
{[76]} {[84]} {[92]} {[100]} {[108]} {[116]} {[124]} {[132]} {[140]}
{[77]} {[85]} {[93]} {[101]} {[109]} {[117]} {[125]} {[133]} {[141]}
{[78]} {[86]} {[94]} {[102]} {[110]} {[118]} {[126]} {[134]} {[142]}
{[79]} {[87]} {[95]} {[103]} {[111]} {[119]} {[127]} {[135]} {[143]}
{[80]} {[88]} {[96]} {[104]} {[112]} {[120]} {[128]} {[136]} {[144]}
Columns 19 through 24
{[145]} {[153]} {[161]} {[169]} {[177]} {[185]}
{[146]} {[154]} {[162]} {[170]} {[178]} {[186]}
{[147]} {[155]} {[163]} {[171]} {[179]} {[187]}
{[148]} {[156]} {[164]} {[172]} {[180]} {[188]}
{[149]} {[157]} {[165]} {[173]} {[181]} {[189]}
{[150]} {[158]} {[166]} {[174]} {[182]} {[190]}
{[151]} {[159]} {[167]} {[175]} {[183]} {[191]}
{[152]} {[160]} {[168]} {[176]} {[184]} {[192]}
>> c8(4,:)
ans =
1x24 cell array
Columns 1 through 9
{[4]} {[12]} {[20]} {[28]} {[36]} {[44]} {[52]} {[60]} {[68]}
Columns 10 through 18
{[76]} {[84]} {[92]} {[100]} {[108]} {[116]} {[124]} {[132]} {[140]}
Columns 19 through 24
{[148]} {[156]} {[164]} {[172]} {[180]} {[188]}