我有一个介于0和180之间的列向量。我正在寻找一种方法来将所有值提取为0到5之间的列,然后是5到10之间的所有值,依此类推,最多可达180 ,然后将所有这些保存到单元格数组中。
我知道我可以使用这种技术:
range = data(5 <= data & data <= 10)
但是为每个范围写出来似乎有点长篇大论
答案 0 :(得分:1)
直截了当的方法是将代码包装成for循环,如下所示:
maxValue = 180;
data = randperm(maxValue); %//some dummy data
binSize = 5;
numBins = maxValue / binSize;
ranges = cell(1, numBins);
for i = 1:numBins
ranges{i} = data(binSize * (i - 1) <= data & data <= binSize * i);
end