如何计算意味着基于箱子从相应的威尔士人创建的值?

105(30天)
我有两个列向量,可以称之为A和B,我创建了一个有序削减从这两个向量中的值。
我想把箱子从价值观。
然后我想计算均值,马克斯,相应的B值的标准差垃圾箱创建从一个值。
splitapply,我试着用histcounts accumarray,但我没能找到一个正确的解决方案。有提示吗?
A和B向量距离和强度,分别
range_intensity是这两个的组合矩阵列向量。
range_intensity =
(南南
南南
南南
南南
南南
南南
南南
南南
南南
南南
南南
南南
26.040001 - 0.011764706
26.080000 - 0.019607844
26.112000 - 0.023529412
26.232000 - 0.023529412
26.184000 - 0.031372551
26.240000 - 0.027450981
26.260000 - 0.031372551
26.271999 - 0.031372551
26.275999 - 0.031372551
26.316000 - 0.035294119
26.312000 - 0.035294119
26.351999 - 0.031372551
26.351999 - 0.031372551
26.372000 - 0.031372551
26.424000 - 0.031372551
26.424000 - 0.031372551
26.452000 - 0.031372551
26.480000 - 0.039215688
26.496000 - 0.035294119
26.572001 - 0.031372551
26.552000 - 0.035294119
26.604000 - 0.031372551
26.620001 - 0.035294119
26.680000 - 0.035294119
26.684000 - 0.035294119
26.719999 - 0.035294119
26.747999 - 0.027450981
26.784000 - 0.031372551
26.820000 - 0.031372551
26.848000 - 0.027450981
26.875999 - 0.031372551
26.872000 - 0.031372551
26.920000 - 0.027450981
26.944000 - 0.027450981
26.972000 - 0.031372551
27.020000 - 0.031372551
27.044001 - 0.027450981
27.115999 - 0.035294119
27.132000 - 0.031372551
27.164000 - 0.031372551
27.184000 - 0.035294119)
边缘= [0:0.5:250];
[distance_count, indx] = histc (range_intensity(: 1),边);
%函数res = my_mean_omitnan(中)
% res =意味着(,' omitnan ');
%结束
意味着= accumarray (indx + 1, range_intensity (indx + 1, 2), [], @ (x)的意思是(x,“omitnan”));
max = accumarray (indx + 1, range_intensity (indx + 1, 2), [], @max);
std = accumarray (indx + 1, range_intensity (indx + 1, 2), [], @std);
酒吧(max);
持有;
情节(平均);
网格;
一个问题是,边的长度向量和的意思是,马克斯向量并不匹配,所以我不能画出均值和马克斯兑换边缘。
还有NaN值两个向量,这应该被丢弃的意思是,马克斯和标准偏差计算。
Furtheremore,可视化数据的最佳方式是什么?
提前谢谢。
2的评论
Guillaume
Guillaume 2019年11月13日
有点不清楚您想要使用装箱方法。一个例子会是有用的。
accumarray groupsummary 可能是最简单的方法做你想做的事情。 的意思是 有一个 “omitnan” 选择忽略nan所以它不是一个问题。

登录置评。

接受的答案

亚当Danz
亚当Danz 2019年11月13日
编辑:亚当Danz 2019年11月13日
通常边缘应包括你张成的空间数据,不多也不少,除了最后的边缘应该比您的最大价值,确保最后一本不是吸收额外的价值。
装箱数据
我建议使用 离散化() 将第一列中的值分组为离散群体。下面的线使用您的数据的范围来确定的范围本边缘。
边缘=地板(min (range_intensity(: 1))): 5:装天花板((max (range_intensity(: 1)) +措施)* 10/5)* 5/10;
垃圾箱=离散化(range_intensity(: 1),边);
上面的代码使用 地板() 定义的最小本边缘。箱子是 0.5 单位宽。它使用 装天花板() 定义最大本边缘但确保最大边缘不落在最大数据值,它增加了0.001,然后围捕到最近的0.5 (hense, * 10/5)* 5/10 )
计算组统计信息
如果你有统计和机器学习的工具箱,使用 grpstats () 计算分组统计。
[meanVal, maxVal stdVal] = grpstats (range_intensity(:, 2),垃圾箱,{@mean、@max @std});
如果你没有访问统计和ML的工具箱,使用 splitapply () (或accumarray或其他方法)来计算你的分组统计。
meanVal = splitapply (@mean range_intensity(:, 2),箱);%为其他数据重复
策划的结果
根据定义,本边总会有1额外的价值比垃圾箱的数量。情节分箱数据的一种方法是计算本中心和使用,作为x值。
binCenters =(2:结束)-边缘(边缘(2)边(1)/ 2;
如果本边缘正确设置上面的步骤后,你应该得到一个向量binCenters大小相同的作为你的分组统计值。策划那么简单
图()
栏(binCenters maxVal)
持有
情节(binCenters meanVal,“女士”)
网格
8的评论
亚当Danz
亚当Danz 2019年11月13日
这给我的想法建立一个功能推荐引擎,丢弃所有可用的命令历史记录和自定义函数/脚本的用户通常使用什么函数,然后建议相关功能,最近很少被使用。目标是揭露用户新功能之外的曲目。
该引擎将搜索用户的内容和前500个最常用的功能列表。为每个函数被Matlab(即不是定制函数),引擎可以参考函数的官员 另请参阅 部分的文档页面列出相关功能,可以消除那些已经进入了前500名。剩下的可以排名的顺序出现的次数在所有的500功能(或者至少有一个文档页面,其中包括一个“参见”部分)。
例如,如果长度尺寸()和()是经常使用的,这两个函数列表元素个数()的文档页面将被推荐给用户查看。这将是一个肮脏、丑陋的混乱但机器学习算法使产品更丑陋的混乱。s manbetx 845
我将把它在我的业余时间(长)列表的想法....

登录置评。

更多的答案(0)

类别

找到更多的在描述性统计帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!