爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 16751|回复: 28

求取90百分位数

[复制链接]

新浪微博达人勋

发表于 2021-7-12 19:06:01 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
求取三维数组的90百分位数出错,出错行标红了,错误显示:fatal:Dimension sizes of left hand side and right hand side of assignment do not match

do i =0,90,1
    do j=0,180,1  
       h1 = ndtooned(h(:,i,j))
       h2 = h1(ind(.not.ismissing(h1)))
        m = dimsizes(h2)
        qsort(h2)

        a=toint(floor(0.9*m))
        b=toint(ceil(0.9*m))

        h3(i,j)=(h2(a)+h2(b))/2
       print(h3(i,j))

    end do
end do   

我的思路是每个格点得到一个时间序列,选出非缺测值排序,然后找到90百分位的数值存储,最后得到lat×lon的数组h3,麻烦大佬们看一下是什么原因,或者大家有什么别的方法求取90百分位数的吗?  

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2021-7-16 10:03:05 | 显示全部楼层
问题解决啦,下面是正确的脚本

      if (.not.all(ismissing(h)))
        h1 = ndtooned(h)
        h2 := h1(ind(.not.ismissing(h1)))
       end if
   
      m = dimsizes(h2)
      qsort(h2)
      
      if ((toint(floor(0.9*m))) .eq. (0.9*m))then
        h3 =  h2(toint(0.9*m))
      else
        a=toint(floor(0.9*m))
        b=toint(ceil(0.9*m))
        h3=(h2(a)+h2(b))/2  
       end if
      print(h3)

密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

新浪微博达人勋

发表于 2021-7-13 09:20:17 | 显示全部楼层

回帖奖励 +1 金钱

还没学这个
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-7-13 10:07:05 | 显示全部楼层

回帖奖励 +1 金钱

h2 := h1(ind(.not.ismissing(h1)))
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-7-14 11:00:41 | 显示全部楼层
谢谢啦,这样改了原来的错误没有了,但是出现了新的错误
fatal:Subscript out of range, error in subscript #0
fatal:An error occurred reading h1
很奇怪,不知道是什么原理
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-1-27 20:11:41 | 显示全部楼层

回帖奖励 +1 金钱

遇到同样的问题,请问您解决了吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-2-7 10:46:49 | 显示全部楼层

回帖奖励 +1 金钱

检查一下数组的范围,应该是提取部分数组数据时出了问题。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-8-23 20:57:22 | 显示全部楼层

回帖奖励 +1 金钱

{:eb502:}{:eb502:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-3-6 23:09:15 | 显示全部楼层

回帖奖励 +1 金钱

您好!我的数据数组是[年64*日365*纬度145*经度288]四维构成的,现在老板让我做第90个百分位求取极端气温,不知道怎么弄,麻烦大佬指点
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-3-7 18:07:24 | 显示全部楼层
duoci01 发表于 2023-3-6 23:09
您好!我的数据数组是[年64*日365*纬度145*经度288]四维构成的,现在老板让我做第90个百分位求取极端气温, ...

我还不太清楚怎么上传文件,麻烦你留个邮箱我把脚本发你~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表