数量范围到子集切片

时间:2018-05-23 15:34:50

标签: matlab

我想将一个矢量重塑成一个数字'切片' (在Matlab中)但是发现自己处于大脑冻结之中并且无法想出一个好方法(例如单行):

a=1:119;
slices=[47 24 1 47];
result={1:47,48:71,...};

结果不需要存储在单元格数组中。

由于

1 个答案:

答案 0 :(得分:3)

这是mat2cell的作用:

>> a=1:119;
>> slices=[47 24 1 47];
>> result = mat2cell(a, 1, slices)   % 1 is # of rows in result
result =
{
  [1,1] =
   Columns 1 through 15:
      1    2    3    4    5    6    7    8    9   10   11   12   13   14   15
   Columns 16 through 30:
     16   17   18   19   20   21   22   23   24   25   26   27   28   29   30
   Columns 31 through 45:
     31   32   33   34   35   36   37   38   39   40   41   42   43   44   45
   Columns 46 and 47:
     46   47
  [1,2] =
   Columns 1 through 15:
     48   49   50   51   52   53   54   55   56   57   58   59   60   61   62
   Columns 16 through 24:
     63   64   65   66   67   68   69   70   71
  [1,3] =  72
  [1,4] =
   Columns 1 through 13:
      73    74    75    76    77    78    79    80    81    82    83    84    85
   Columns 14 through 26:
      86    87    88    89    90    91    92    93    94    95    96    97    98
   Columns 27 through 39:
      99   100   101   102   103   104   105   106   107   108   109   110   111
   Columns 40 through 47:
     112   113   114   115   116   117   118   119
}