几周前我问过一个类似的问题,但我认为这个问题的框架不正确,所以请原谅我再次问同样的问题
我有一个带有值的列向量
32.5
25.8
25.91
25.92
16.52
16.7
现在我想创建一个单元格数组,使我的第一个单元格包含第一个值,我的第二个单元格数组包含从 25.8 到 25.92 的值,最后我的第三个单元格数组包含值 16.52 和 16.7 。
我怎么解决这个问题。
几周前我问过一个类似的问题,但我认为这个问题的框架不正确,所以请原谅我再次问同样的问题
我有一个带有值的列向量
32.5
25.8
25.91
25.92
16.52
16.7
现在我想创建一个单元格数组,使我的第一个单元格包含第一个值,我的第二个单元格数组包含从 25.8 到 25.92 的值,最后我的第三个单元格数组包含值 16.52 和 16.7 。
我怎么解决这个问题。
这是一种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
命令,结果甚至被排序。
由于您没有解释为什么要拆分向量,因此我假设指定的划分是任意的。假设 v 是列向量,以下应该做你想做的事:
c = {v(1) v(2:4) v(5:6)};
基本上,您正在从原始向量中构建三个新向量,并将它们组合成一个元胞数组。