Matlab 宾宁1:9->;等数单元阵列的存储单元
下面是一个简单的问题:我想把一个向量放入一个大小相等的单元数组Matlab 宾宁1:9->;等数单元阵列的存储单元,matlab,bin,binning,Matlab,Bin,Binning,下面是一个简单的问题:我想把一个向量放入一个大小相等的单元数组组 我在解决问题时遇到了困难,我有一种强烈的感觉,那就是我可以成为一名一线队员,以下是我取得的成绩: 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} 我错过了什么 该解决方案应适用于任何包含数字的一维向量,将其放
组
我在解决问题时遇到了困难,我有一种强烈的感觉,那就是我可以成为一名一线队员,以下是我取得的成绩:
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}
我错过了什么
该解决方案应适用于任何包含数字的一维向量,将其放入尽可能大小相等的容器中(任何解决方案都有效);输出应该是各个存储箱的单元阵列。您可以使用和:
如果数组大小不能被可使用的存储箱数整除,则:
垃圾箱是按原始顺序还是按其值的递增顺序使用数字构建的?如果箱子大小不除以元素数量,输出应该是什么?分配给nums
元素的类别被categories=离散化(nums,3)代码>是{1:2,3:5,6:9}
,而不是{1:3,4:6,7:9}
。你的预期结果是什么?@你是对的。预期的结果是拥有尽可能大小相同的料仓(具有fleixble料仓大小)。使用discretize是谷歌搜索的结果,读取[Y,E]=discretize(X,N)将X的范围划分为N个统一的存储箱,并从文档中返回存储箱边缘E。
,意外结果,apologies@LuisMendo顺序不重要,我猜输出大小可能会关闭,即10->3个箱子中的箱子->3,3,4个箱子
result = num2cell(reshape(1:9,3,[]),1);
nbins = 3;
a= [2 3 1 8 7 6 9 8 1];
result = mat2cell(a,1,histcounts(1:numel(a),nbins));