[ncl-talk] do loop based on variable similar names
xyzheng at mail.ustc.edu.cn
xyzheng at mail.ustc.edu.cn
Thu Nov 10 18:20:34 MST 2016
Thanks s lot for your detailed answer,the solution is very smart!(*^__^*)
在2016-11-10 16:19:12,Hoffman Cheunghoffmancheung at gmail.com写道:
Sorry for a careless mistake in the previous reply.
The do loop should be better starting from 0 in NCL.
izMin = (/.../)
izMax = (/.../)
do i = 0, 12
iz = ind(field(0,:).ge.izMin(i) .and. field(0,:).lt.izMax(i)) ; define izMin and izMax explicitly before executing the loop
if (.not. any(ismissing(iz)) then
print("Number of data fall between "+ izMin(i) + " and " + izMax(i) + " = " + dimsizes(iz))
else
print("No data can be found for the values between "+ izMin(i) + " and " + izMax(i))
end if
delete(iz)
end do
2016-11-10 9:05 GMT+01:00 Hoffman Cheung <hoffmancheung at gmail.com>:
Hi Zoey,
In this case, you may just read the values inside the do loop, and delete the variable at the end of the loop.
izMin = (/.../)
izMax = (/.../)
do i = 1, 13
iz = ind(field(0,:).ge.izMin(i) .and. field(0,:).lt.izMax(i)) ; define izMin and izMax explicitly before executing the loop
if (.not. any(ismissing(iz)) then
print("Number of data fall between "+ izMin(i) + " and " + izMax(i) + " = " + dimsizes(iz))
else
print("No data can be found for the values between "+ izMin(i) + " and " + izMax(i))
end if
delete(iz)
end do
Cheers,
Hoffman
2016-11-10 3:44 GMT+01:00 <xyzheng at mail.ustc.edu.cn>:
Hello,
I am looking for a way to call a series of variables through their names (string) in NCL.These variables are of different sizes,so they can't be set as an array iz(k) of fixed size. And Idon't know how to do loop and some other operations based on these similar namessince ("iz"+i) can't be identified as a variable in the following script. Can anyone help?
.....................................................................................................................
fieldf(0,:) = asciiread(fi,-1,"float")
iz1=ind(fieldf(0,:).ge.0.and.fieldf(0,:).lt.1.5)
iz2=ind(fieldf(0,:).ge.1.and.fieldf(0,:).lt.2.2)
iz3=ind(fieldf(0,:).ge.2.2.and.fieldf(0,:).lt.3)
iz4=ind(fieldf(0,:).ge.3.and.fieldf(0,:).lt.4.2)
iz5=ind(fieldf(0,:).ge.4.2.and.fieldf(0,:).lt.5.6)
iz6=ind(fieldf(0,:).ge.5.6.and.fieldf(0,:).lt.6)
iz7=ind(fieldf(0,:).ge.6.and.fieldf(0,:).lt.7)
iz8=ind(fieldf(0,:).ge.7.and.fieldf(0,:).lt.8)
iz9=ind(fieldf(0,:).ge.8.and.fieldf(0,:).lt.9.1)
iz10=ind(fieldf(0,:).ge.9.1.and.fieldf(0,:).lt.10)
iz11=ind(fieldf(0,:).ge.10.and.fieldf(0,:).lt.11)
iz12=ind(fieldf(0,:).ge.11.and.fieldf(0,:).lt.12)
iz13=ind(fieldf(0,:).ge.12.and.fieldf(0,:).lt.13)
do i=1,13
print(dimsizes("iz"+i))
end do
....................................................................................................
Thanks very much,
Zoey
_______________________________________________
ncl-talk mailing list
ncl-talk at ucar.edu
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20161111/76ab428b/attachment.html
More information about the ncl-talk
mailing list