диапазон числа до поднабора срезов - PullRequest
0 голосов
/ 23 мая 2018

Я хотел бы преобразовать вектор в число «кусочков» (в Matlab), но попал в тупик и не могу придумать хороший способ (например, однострочный) сделать это:

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

результат не нужно хранить в массиве ячеек.

Спасибо

1 Ответ

0 голосов
/ 23 мая 2018

Вот что 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...