将特定设定点存储在新单元阵列中

时间:2013-06-11 21:05:44

标签: matlab

几个星期前我曾问过一个类似的问题,但我认为这个问题没有正确处理,所以请原谅我再次提出同样的问题

我有一个值为

的列向量

32.5

25.8

25.91

25.92

16.52

16.7

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

我该如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

由于您没有解释为什么要分割矢量,我假设指定的除法是任意的。假设v是列向量,以下应该做你想要的:

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

基本上你是用原始部分构建三个新的向量,并将它们组合成一个单元格数组。

答案 1 :(得分: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命令,结果甚至已经排序。