在Matlab中从单个值生成向量

时间:2016-10-17 15:44:34

标签: arrays matlab

我有矢量c:

c = [2 5 3];

我希望以连续的顺序生成长度等于c中每个值的向量。所以,我应该获得3个载体:

c1 = [1 2]; 
c2 = [3 4 5 6 7];
c3 = [8 9 10]; 

接下来,我想在1x3单元格数组中对齐这些向量:

out = {c1 c2 c3}; 

这可能看起来很简单,但我无法想象如何自动完成。有任何想法吗?

1 个答案:

答案 0 :(得分:7)

您可以使用mat2cell来完成此操作。我们首先创建一个从1sum(c)的数组,然后使用mat2cell将数组分组,每个部分的大小为c的每个元素。

out = mat2cell(1:sum(c), 1, c);

这减少了对中间变量的需求,并直接为您提供了单元格数组。

out{1} =

     1     2

out{2} =

     3     4     5     6     7

out{3} =

     8     9    10