以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  怎么统计数组的出现某个值得次数  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=162003)

--  作者:wsuong
--  发布时间:2018/3/12 11:53:43
--  怎么统计数组的出现某个值得次数
RUNMODE:0;
VARIABLE:kdz[]=0;
asx:STKINDI(\'\',\'dsg.asx\',2,-1);
if asx>0 then kdz:=asx;

数组kdz已经定义好
就想在asx>0时,统计asx的值在数组kdz中出现的次数,asx为变量。

比如
当asx>0时,数组中的值为【1,3,5,5,3,2,6,4,6,4,3,2,4,7.....4】最后一次asx>0时数组中的值为4。
好了,现在就是想在最后一次asx>0时统计数组中出现4的次数。

金字塔的教程太有限了,看了很多还是解决不了问题。
还有个小问题,就是怎么调出数组中的值,用哪个函数啊?

--  作者:wenarm
--  发布时间:2018/3/12 13:20:40
--  

只能用for循环遍历了。

你上面的写法用数组没有意义,stkindi引用过来的值本身就是一个序列变量,你把它就直接当成一个数组进行取值就行了,干嘛还要赋值给一个空数组。

aaa:count(asx>0,0);


--  作者:FireScript
--  发布时间:2018/3/12 13:22:17
--  

asx引用过来就相当于一个数组了,

count(asx=4,0) 返回值就是4出现的次数。

 

没必要塞到数组里面去。

 


--  作者:wsuong
--  发布时间:2018/3/12 23:02:04
--  
因为当asx>0时不知道赋的是什么值。而且asx>0时赋的值有几百种。
我用for循环也不行。
if(asx>0,count(asx=asx[DATACOUNT],0),0) ;这样行吗?

--  作者:wsuong
--  发布时间:2018/3/12 23:02:15
--  
因为当asx>0时不知道赋的是什么值。而且asx>0时赋的值有几百种。
我用for循环也不行。
if(asx>0,count(asx=asx[DATACOUNT],0),0) ;这样行吗?

--  作者:FireScript
--  发布时间:2018/3/13 9:37:42
--  

不行的  这个实现不了你要的。 此外asx[DATACOUNT]除了最后一个K,在其他K上都等于是未来引用了,超出数组长度了其实。