Matlab 在新的单元格数组中存储特定的设置点

Matlab 在新的单元格数组中存储特定的设置点,matlab,Matlab,几周前我曾问过一个类似的问题,但我认为这个问题的框架不恰当,所以请原谅我再次问同样的问题 我有一个带值的列向量 32.5 25.8 25.91 25.92 16.52 16.7 现在我想创建一个单元格数组,第一个单元格包含第一个值,第二个单元格数组包含25.8到25.92的值,最后第三个单元格数组包含16.52和16.7的值 如何解决这个问题。既然您没有解释为什么要拆分向量,我假设指定的除法是任意的。假设v是列向量,则以下操作应满足您的要求: c = {v(1) v(2:4) v(5:6)};

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

我有一个带值的列向量

32.5

25.8

25.91

25.92

16.52

16.7

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


如何解决这个问题。

既然您没有解释为什么要拆分向量,我假设指定的除法是任意的。假设v是列向量,则以下操作应满足您的要求:

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

基本上,你是从原始向量的片段中构造三个新向量,并将它们组合成一个单元数组。

这是一种使用
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

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

列中的这些值只是示例。例如,在32.8之后,我可以得到32.1的值,所以它被存储在同一个单元格数组中。同样,我可能会得到10或20个不同的24.5到25.5的值,这些值会再次存储在同一个单元格数组中。好的,你的问题中缺少的是如何将原始向量拆分为单元格的标准。所以你希望具有相同整数部分的值存储在同一个单元格中?为什么不将其拆分为单元格数组?您是否愿意让索引指向每个分组,以便在将来的计算中可以单选分组?