0

几周前我问过一个类似的问题,但我认为这个问题的框架不正确,所以请原谅我再次问同样的问题

我有一个带有值的列向量

32.5

25.8

25.91

25.92

16.52

16.7

现在我想创建一个单元格数组,使我的第一个单元格包含第一个值,我的第二个单元格数组包含从 25.8 到 25.92 的值,最后我的第三个单元格数组包含值 16.52 和 16.7 。

我怎么解决这个问题。

4

2 回答 2

0

这是一种for循环方式。

A = [...
    32.5
    25.8
    25.91
    25.92
    16.52
    16.7];

[U,~,ic] = unique(floor(A));

B = cell(length(U),1); % Result

for k = 1:length(A)
    B{ic(k)} = [B{ic(k)} A(k)];
end

感谢unique命令,结果甚至被排序。

于 2013-06-11T21:44:52.463 回答
0

由于您没有解释为什么要拆分向量,因此我假设指定的划分是任意的。假设 v 是列向量,以下应该做你想做的事:

c = {v(1) v(2:4) v(5:6)};

基本上,您正在从原始向量中构建三个新向量,并将它们组合成一个元胞数组。

于 2013-06-11T21:15:37.520 回答