![]() |
在這個頁面顯示本主題全部的 9 個文章 |
奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- SORT寫成迴圈的問題 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=13015)
SORT寫成迴圈的問題
var1:=high;
N:=12;
N2:=datacount;
N1:=N2-N+1;
if N1<0 then N1:=1;
X := var1;
X_tmp:=SORT(X,0,N1,N2);
Q_C:X[N1+5];
Q_D:X[N1+6];
以上是某位大大曾經問過的問題解答, 正巧小弟爬文看到
這也是我想要問的, 因為我想計算中位數, 不過這如何寫成
迴圈啊?小弟寫了許久都失敗, 麻煩解答了... 感恩
回覆: SORT寫成迴圈的問題
引用:
最初由 Ruchael 發表
var1:=high;
N:=12;
N2:=datacount;
N1:=N2-N+1;
if N1<0 then N1:=1;
X := var1;
X_tmp:=SORT(X,0,N1,N2);
Q_C:X[N1+5];
Q_D:X[N1+6];
以上是某位大大曾經問過的問題解答, 正巧小弟爬文看到
這也是我想要問的, 因為我想計算中位數, 不過這如何寫成
迴圈啊?小弟寫了許久都失敗, 麻煩解答了... 感恩
對不起, 以小弟舉的例子來說, 它只會run資料最後那一段, 並不是
整段資料都計算, 所以是不是用迴圈它才能計算全部資料?抑或是
其他的問題.....因為原來的公式算出來只有條平行線...@@
引用:
最初由 Ruchael 發表
對不起, 以小弟舉的例子來說, 它只會run資料最後那一段, 並不是
整段資料都計算, 所以是不是用迴圈它才能計算全部資料?抑或是
其他的問題.....因為原來的公式算出來只有條平行線...@@
小弟的表達可能有誤...我是想要所有的最高價資料以每12筆為單位
進行排序...並且計算中位數, 也就是排序完的第六高、第七高資料
加以平均, 而獲得該筆資料中位數....因為資質駑鈍...怎麼寫都錯, 請
大大開示一下...感恩
引用:
最初由 Ruchael 發表
小弟的表達可能有誤...我是想要所有的最高價資料以每12筆為單位
進行排序...並且計算中位數, 也就是排序完的第六高、第七高資料
加以平均, 而獲得該筆資料中位數....因為資質駑鈍...怎麼寫都錯, 請
大大開示一下...感恩
原碼:
ck:=mod(barpos,12)=0;
SH:H; MH:C*0 linethick coloryellow;
for i=lbound(ck) to datacount do begin
if ck[i] then begin
tmp:=SORT(SH,0,i-12+1,i);
MH[i]:=(SH[i-6]+SH[i-5])/2;
end;
end;
MH:=SETVAL(ck,MH,-11,MH);
PARTLINE(MH>0,MH) coloryellow;
VERTLINE(ck) linedot;
引用:
最初由 cgjj 發表
看看 MH 值, 是否為是您要的
原碼:
ck:=mod(barpos,12)=0;
SH:H; MH:C*0 linethick coloryellow;
for i=lbound(ck) to datacount do begin
if ck[i] then begin
tmp:=SORT(SH,0,i-12+1,i);
MH[i]:=(SH[i-6]+SH[i-5])/2;
end;
end;
MH:=SETVAL(ck,MH,-11,MH);
PARTLINE(MH>0,MH) coloryellow;
VERTLINE(ck) linedot;
引用:
最初由 Ruchael 發表
大大太厲害了, 不過應該又是小弟沒表達完整, 計算中位數
可以像MA一樣每天橫移一個資料點重新計算排序嗎?
|************| 算出A
*|************| 算出B
** |***********| 算出C
中位數資料: ABCDE.........
像上面這樣..每天就有不一樣的中位數資料串成一個數列
感激不盡
原碼:
if datacount<12 then exit;
SH:=H; MH:C*0 coloryellow; DH:=MH;
for i=12 to datacount do begin
for j= i downto i-12+1 do begin
DH[j]:=SH[j];
end;
tmp:=SORT(DH,0,i-12+1,i);
MH[i]:=(DH[i-6]+DH[i-5])/2;
end;
x:=SETLBOUND(MH,12);
其實我也很擔心CPU會跑的很辛苦......感激大大的關心...謝謝
全部時間均為台灣時間, 現在時間為01:44 | 在這個頁面顯示本主題全部的 9 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.