将表数据重新整形为数组单元格的单元格

时间:2016-07-27 06:44:34

标签: arrays matlab optimization cell-array

我目前需要从表中取四列并将其存储在1xheight(table)单元格数组中,每个单元格的2x1单元数组为1x2数组。

目前我有代码段

result=mat2cell(num2cell(reshape(table2array(tab)',2,[])',2),2*ones(1,height(tab)),1)

我的表名为tab。我觉得这不是最好的做法,为了学习和代码优化,我很乐意看到这个社区是否可以帮助我改进它。

我需要这种奇怪的数据结构的原因是我可以在表单上有效地创建一个struct-array

st=struct(...,'LIMITS',result,...);

实施例

所以这基本上就是我想做的事情:

    tab=array2table(reshape(1:20,4,5)')

tab = 

    Var1    Var2    Var3    Var4
    ____    ____    ____    ____

     1       2       3       4  
     5       6       7       8  
     9      10      11      12  
    13      14      15      16  
    17      18      19      20  

    result=mat2cell(num2cell(reshape(table2array(tab)',2,[])',2),2*ones(1,height(tab)),1);

    celldisp(result)

result{1}{1} =
     1     2

result{1}{2} =
     3     4

result{2}{1} =
     5     6

result{2}{2} =
     7     8

result{3}{1} =
     9    10

result{3}{2} =
    11    12

result{4}{1} =
    13    14

result{4}{2} =
    15    16

result{5}{1} =
    17    18

result{5}{2} =
    19    20

0 个答案:

没有答案