全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1014 3
2014-10-17
数据组的名称是ans.mat
一共50000个数据,想指定第60%值是70,
直接用prctile(ans,60)查出来不是70,
请问什么程序可以砍掉尾部数据直到符合呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-10-18 09:13:04
如果只删除不用补足数据,那么每次删除不合宜的数据即可,直到达到足够的精确度。当然,精细一点,可以随机去删除。

>> temp=rand(5e4,1)*100;
>> prctile(temp,60)
ans =
   60.0005

while abs(prctile(temp,60)-70)>0.5  %设置一个比较小,但是靠谱的精确度要求, 要确保能达到,否则最后出错; 可以先设置一个比较大的粗糙的值,然后精细化。
  idx=find(temp<70);
  temp(idx(randi(length(idx))))=[]; %删除小的数字
end

>> whos temp
  Name          Size             Bytes  Class     Attributes

  temp      37511x1             300088  double              

>> prctile(temp,60)
ans =
   69.5009
PS:某个目标直接改数据,真的好么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-18 15:39:58
Xaero 发表于 2014-10-18 09:13
如果只删除不用补足数据,那么每次删除不合宜的数据即可,直到达到足够的精确度。当然,精细一点,可以随机 ...
这是理论上的值,为了达到理论上的值要求将噪音(误差数据)去除。
不是为了造数据而造数据。
谢谢啦亲~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-18 19:31:04
这个可以学习一下                                                                        
                                       
                                                     
                                                     
                                             
                                                                 
                                                                                 
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群