我有矢量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};
这可能看起来很简单,但我无法想象如何自动完成。有任何想法吗?
答案 0 :(得分:7)
您可以使用mat2cell
来完成此操作。我们首先创建一个从1
到sum(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