【发布时间】:2018-07-12 15:00:05
【问题描述】:
以下简单问题:我想将一个向量放入一个单元格数组groups,大小相等。
我在解决问题时遇到了麻烦,我强烈地感觉自己可能会成为一名单行者,以下是我所取得的成就:
nums=1:9; %numbers to bin
categories=discretize(nums,3); %put nums in 3 equal groups
groups=mat2cell(x); % should return: {1:3,4:6,7:9}
我错过了什么?
该解决方案应该适用于任何包含数字的一维向量,尽可能将其分箱到大小相等的箱中(任何解决方案都有效);输出应该是各个 bin 的元胞数组。
【问题讨论】:
-
bin 是使用原始顺序的数字构建的,还是按照它们的值的递增顺序构建的?如果 bin 大小不除元素数,输出应该是什么?
-
categories=discretize(nums,3);分配给nums元素的类别是{1:2,3:5,6:9},而不是{1:3,4:6,7:9}。您的预期结果是什么? -
@Will 你是对的。预期的结果是可能具有相同大小的箱(具有灵活的箱大小)。使用离散化是谷歌搜索并从文档中读取
[Y,E] = discretize(X,N) divides the range of X into N uniform bins, and also returns the bin edges E.的结果,意外结果,道歉 -
@LuisMendo 顺序无关紧要,我猜输出大小可能会关闭,即说 10 -> bins of 3 -> 3,3,4 bins